[恢]hdu 2053
2011-12-15 00:25:42
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2053
题意:有无限多的电灯排成一列,一开始都是关,操作无限多次,第i次操作会把编号为i和i的倍数的电灯改变状态。问最后第i盏电灯的状态是开还是关。
mark:TLE了一次,直接扫约数判奇偶结果TLE了。打表找规律,发现只要是平方数(1、4、9、16……)就是开,否则就是关。
代码:
# include <stdio.h>
# include <math.h>
int main ()
{
int i, n, m ;
while (~scanf ("%d", &n))
{
m = (int)sqrt(n) ;
if (m*m == n) puts ("1") ;
else puts ("0") ;
}
}