考点
本题主要考查数组、循环的熟练使用,是到妥妥的水题。
分析
既然只有开和关,那就只需要一个 b o o l bool bool 类型的数组来储存的灯状态。 可以用两层循环来模拟灯的状态变化,外层循环枚举 n n n 个人,内层循环枚举第 i i i 个人的编号倍数的灯并进行取反操作。
AC代码 (不要只看这里啊,虽然我知道你们都喜欢
#include<bits/stdc++.h>
using namespace std;
int n;
bool a[5010];
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j+=i)
{
a[j]=!a[j];
}
}
for(int i=1;i<=n;i++)
if(a[i]==1)
cout<<i<<" ";
return 0;
}
以上就是B2092的题解了,希望对你有所帮助。