设为首页 加入收藏

TOP

开灯问题(语言入门)
2014-11-23 19:52:17 来源: 作者: 【 】 浏览:11
Tags:问题 语言 入门

\

/****************************************************************************************
   题目链接:
               http://acm.nyist.net/JudgeOnline/problem.php pid=77
   思    路:
               首先是输入2个数据,然后定义一个数组,介于灯只有2种状态,
               所以就定义成bool类型,然后初始化为0,代表灯起初全部是关闭状态。
               接着是2个循环,外面的循环代表从编号为1的人开始,直到结束。
               里面的循环代表从编号为1的灯进行操作,把符合要求的灯的状态改变为和原来相反的状态即可。
               最后判断哪些灯是开的,将它的编号输出。
               由于最后的输出中,除了第一个输出的前面没有空格,其它的结果前面都有空格,
               所以就把第一个就单独考虑。
****************************************************************************************/
#include 
  
   
#include 
   
     #include 
    
      using namespace std; int main(void) { int n,k; while(cin>>n>>k) { bool *lamp = (bool *)malloc((n+2)*sizeof(bool)); memset(lamp,0,(n+2)*sizeof(lamp)); for(int i=1; i<=k; i++)//人数遍历 for(int j=1; j<=n; j++)//灯数遍历 if(j % i == 0) * (lamp+j) = !*(lamp+j); cout<<1; for(int j=2; j<=n; j++) if(*(lamp+j) == 1) cout<<" "<
      
      

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇由实例浅析C中的static、extern、.. 下一篇C语言中的柔性数组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: