有n盞燈,編號為1~n。第1個(gè)人把所有燈打開,第二個(gè)人按下所有編號為2的倍數(shù)的開關(guān)(這些燈將被關(guān)掉),第3個(gè)人按下所有編號為3的倍數(shù)的開關(guān)。依此類推。一共有k人,問最后哪些燈開著?
輸入n和k,輸出開著的燈的編號。
樣例輸入:
7 3
輸出:
1 5 6 7
#include <iostream>
using namespace std;
int main()
{
int a[7] = {1,1,1,1,1,1,1};
//1st person
for(int i = 2;i<=3;i++)
{
for(int j = 0;j<7;j = j + i)
{
a[j] = (a[j] == 0?1:0);
}
}
for(int n = 0;n<=6;n++)
{
cout<<" "<<a[n]<<" ";
}
cout<<endl;
return 0;
}
最后輸出的數(shù)組,1代表開著,0代表關(guān)著
github地址:
https://github.com/will-I-amor/cppPrac/blob/master/light_turn_Mercury.cpp