灯的开关状态

题目描述:

有 N 个灯放在一排,从 1 到 N 依次顺序编号。有 N 个人也从 1 到 N 依次编号。1 号将灯全部关闭,2 将
凡是 2 的倍数的灯打开;3 号将凡是 3 的倍数的灯作相反处理(该灯如为打开的, 则将它关闭;如关闭的,
则将它打开)。以后的人都和 3 号一样,将凡是自己编号倍数的灯作相反处理。
编程实现:第 N 个人操作后,按顺序输出灯的状态。(1-表示灯打开,0-表示灯关闭)

输入:

n,灯的个数
n不超过100

输出:

灯的状态,01 序列,中间无空格。

样例输入;

2

样例输出:

01

其实这道题分析题意可知就是与完全平方数有关,但是内网是不让你过的(心机心机心机),所以咱就老老实实正常写吧,看代码就能理解:

#include<cstdio>
    using namespace std;
    int main()
    {
    int i,j,n,l=0;
    scanf("%d",&n);
    bool a[n+1];
    for (j=1;j<=n;j++)
    {
        a[j]=0;
    }
    for (i=2;i<=n;i++)
    {
        for (j=1;j<=n;j++)
        {
            if (j%i==0) a[j]=!a[j];
        }
    }
    for (j=1;j<=n;j++)
    {
        printf("%d",a[j]);
    }
    return 0;
    }

这里的=!和!=不是一个意思哦。

原文地址:https://www.cnblogs.com/Zhoier-Zxy/p/8075543.html