题目大意:行走次数是灯的序号的因数时,改变灯的状态。只考虑最后一个灯。
解题思路:一个数的的平方根是整数,则其因数为奇数个;一个数的平方根不是整数,则其因数为偶数个。所以只要判断平方根是否为整数即可。
#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
int main() {
long n , root;
while(cin >> n && n) {
root = sqrt(n);
if( root*root == n )
cout << "yes" <<endl;
else cout << "no" <<endl;
}
return 0;
}
判断灯状态的算法
本文介绍了一种通过判断一个数的平方根是否为整数来决定最后一个灯泡状态的算法。利用数学方法确定灯泡被切换次数的奇偶性,进而得出灯泡最终是亮还是灭。
317

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



