题意:一个喝醉酒的监狱警察玩的游戏,第一次全把门打开,第二次对2的倍数的门开的关--关的开,依次类推。
代码:
include<iostream>
using namespace std;
int main()
{
long number,k=0,cishu,sum;
int a[101],person,j;
cin>>number;
while(k<number)
{
sum=0;
cin>>person;
for(j=1;j<=person;j++)
a[j]=1;
for(j=2;j<=person;j++)
{
cishu=j;
while(cishu<=person)
{
a[cishu]=!a[cishu];//取反得操作,不是1就是0.
cishu+=j;
}
}
for(j=1;j<=person;j++)
sum+=a[j];
cout<<sum<<endl;
k++;
}
return 0;
}