[恢]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") ;
}
}



posted @ 2012-01-06 14:53  Seraph2012  阅读(324)  评论(0编辑  收藏  举报