灯的开关状态
题目描述:
有 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;
}
这里的=!和!=不是一个意思哦。

浙公网安备 33010602011771号