这是一个题,n盏灯,k个人,第一个给全打开,第二个人把2的倍数盏按一下(熄灭),第三个人按3的倍数(打开)。
求最后亮的序号。
这是我的代码。(最后出了问题。。。)
int main()
{
int n,k;
scanf("%d%d", &n,&k);
int light[1000];
for (int i = 0; i < 1000; i++)
light[i] = 0;
for (int everyone = 1; everyone <= k; everyone++)
{
for (int everylight = 1; everylight <= n; everylight++)
if(everylight%everyone==0)
light[everylight - 1] = !(light[everylight - 1]);
for (int i = 0; i < n; i++)
printf("%d ", i + 1);//写这个是为了看每一步的结果
printf("\n");
}
getchar();
getchar();
return 0;
}
(答案是1 5 6 7)
谢谢!
求最后亮的序号。
这是我的代码。(最后出了问题。。。)
int main()
{
int n,k;
scanf("%d%d", &n,&k);
int light[1000];
for (int i = 0; i < 1000; i++)
light[i] = 0;
for (int everyone = 1; everyone <= k; everyone++)
{
for (int everylight = 1; everylight <= n; everylight++)
if(everylight%everyone==0)
light[everylight - 1] = !(light[everylight - 1]);
for (int i = 0; i < n; i++)
printf("%d ", i + 1);//写这个是为了看每一步的结果
printf("\n");
}
getchar();
getchar();
return 0;
}
(答案是1 5 6 7)
谢谢!