HDU 2053 Switch Game(开灯问题,完全平方数)

Posted Yeader

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 2053 Switch Game(开灯问题,完全平方数)相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2053

题目大意:灯开始是关着的,有n盏灯,i从1数到n每当灯的序号是i的倍数的时候就对灯进行一次操作(开->关,关->开),求最后第n盏灯是关着还是开着。

解题思路:直接对第n盏灯模拟也可以,但是有规律更好不是吗~。其实就是判断n的约束奇偶性,奇数就开着,偶数就关着。

     当一个数不是完全平方数:如18约数为:(3,6),(2,19),(1,15)约数个数总会是偶数,因为每个约数都有一个对应的不同的约数。

     当他是完全平方数:如36约数为:(1,36),(2,18),(3,12),(4,9),6 约数个数总是奇数,因为约数sqrt(n)对应的约数是相同的。

代码:

 1 #include<cstdio>
 2 #include<cmath> 
 3 using namespace std;
 4 
 5 int main(){
 6     int n;
 7     while(~scanf("%d",&n)){
 8         int b=sqrt(n*1.0);
 9         if(b*b==n)
10             puts("1");
11         else
12             puts("0");
13     }
14     return 0;
15 }

 

以上是关于HDU 2053 Switch Game(开灯问题,完全平方数)的主要内容,如果未能解决你的问题,请参考以下文章

杭电(hdu)2053 Switch Game 水题

HDU_oj_2053 Switch Game

Hdu2053

hdu 2053

HDU2053.JAVA

Switch Game :因子数