#include <iostream>
#include <string.h>
using namespace std;
//开灯问题,数组问题
//输入灯的总数,人数
#define maxn 101
int main()
{
int n,k,first=1;
cin>>n>>k;
int a[maxn];
memset(a,0,sizeof(a));//这个是C语言中的,作用是把数组进行清零处理
for(int i=0;i<k;i++)
{
for(int j=0;j<n;j++)
{
if(j%i==0)
{
a[j]=!a[j];
}
}
}
for(int h=0;h<n;h++)
{
if(a[h])
{
if(first)//为什么这里面要这样写呢?
first=0;
else
{
cout<<" "<<h;
}
}
cout<<endl;
}
return 0;
}
<img src="https://img-blog.youkuaiyun.com/20160530155552273" alt="" />//出现了这个问题,是哪里错了
本文通过C++代码解决了开灯问题,该问题涉及数组操作及状态切换。利用一个大小为maxn的整型数组记录灯的状态,并通过两次循环实现了特定的人数条件下灯的状态变化。最终输出所有处于开启状态的灯的位置。
1087

被折叠的 条评论
为什么被折叠?



