题目大意:
有一串灯,刚开始都是灭的,进行第i次操作时i的倍数的灯转换状态,给出一个数n,判断无数次后第n个灯是亮还是灭
大致思路:
实际上无数次就是到n即可,hint已经给出n以后的操作对n最终状态不产生影响。
模拟操作实际只需看n是否为i的倍数即可。
c:
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int lamp=1; //第一次全部都亮
for(int i=2;i<=n;i++)
if(n%i==0)
lamp=-lamp; //转换状态。相反数最方便
printf("%d\n",lamp==1?1:0);
}
return 0;
}
本文介绍了一个简单的算法,用于判断一串初始全灭的灯,在经过一系列操作后,特定编号的灯是否处于亮起状态。该算法通过模拟操作,判断灯在无数次操作后的最终状态。
525

被折叠的 条评论
为什么被折叠?



