洛谷B2092 开关灯 题解

考点

本题主要考查数组、循环的熟练使用,是到妥妥的水题。

分析

既然只有开和关,那就只需要一个 b o o l bool bool 类型的数组来储存的灯状态。 可以用两层循环来模拟灯的状态变化,外层循环枚举 n n n 个人,内层循环枚举第 i i i 个人的编号倍数的灯并进行取反操作。

AC代码 (不要只看这里啊,虽然我知道你们都喜欢

#include
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的题解了,希望对你有所帮助。

求个关注不过分吧?

你可能感兴趣的:(算法,c++)