#include<iostream>
#include<memory.h>
using namespace std;
void Function(int n, int k) {
int i, j = 0;
int flag;
bool a[1000]; //初始 false:关灯,true:开灯
memset(a,0,sizeof(a));
for (i = 1; i <= k; i++) //k个人
for (j = 1; j <= n; j++) //n个灯
if (j % i == 0)
a[j] = !a[j]; //取反,false变true,原来开变关,关变开
for (i = 1; i <= n; i++) //最后输出a[i]的值就可以了
if (a[i]) //灯亮着
{
cout<<i<<" ";
flag++;
if(flag%10==0) cout<<endl;
}
}
int main() {
int n,k;
cin>>n>>k;
Function(n,k);
return 0;
}
有一排开关,第一个人把所有的开关打开,第二个人按2的倍数的开或关,第三个人按3的倍数的开或关,以此类推,现在有n个开关,k个人,输出最后灯亮着的开关,若超过十个灯亮,每输出十个换一次行。方法实现#include<iostream>#include<memory.h>using namespace std; void Function(int n, int k) {...