#include <stdio.h>
#include <math.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int ans1;
double ans2;
ans1=sqrt(n);
ans2=sqrt(n);
if(ans1==ans2)
{
printf("1\n");
}
else
printf("0\n");
}
return 0;
}
hdoj2053(switch game
已AC;
如果定義一個數組來代表燈,然後兩輪循環,因爲n<10^5所以後面可能會超時。還是直接判斷好
這題就是那個什麼拍燈問題。。。每輪拍一次燈,第n次拍n的倍數的燈,剛開始燈全滅,基本就是一樣,最後能亮的只有編號爲完全平方數的燈,所以只要判斷n是否爲完全平方數就可以。
爲什麼是完全平方數纔行呢。。。因爲很明顯一個燈要被按奇數次才能亮,也就是編號的約數包括1和本身有奇數個,而如果不是完全平方數的話肯定就是一對一對的約數吧。。。所以只有編號爲完全平方數纔有奇數個約數,纔會亮到最後
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.