题解 UVA10110 【Light, more light】
Mikemao666 · · 题解
题目谷歌翻译:
每个灯泡都有自己的拨动开关。也就是说,如果按下,灯泡就会打开。
再按一次就会关机。以节省电力消耗
他做了件奇怪的事。如果走廊里有n个灯泡,他就在走廊里来回走动
n次,在第i次行走中,他只切换串行可被i整除的开关。他不按
回到初始位置时的任何开关。第i次步行被定义为沿着走廊走
然后又回来了。现在你得决定最后的结果是什么
最后一个灯泡的状况。是开还是关?
一脸遭逼地读完题目后,我总算明白了:这道题就是想让你判断输入的数是不是完全平方数。。。
所以我们就可以循环暴力搜使用
高高兴兴打出第一篇代码:
cin>>m;
if((sqrt(m))*(sqrt(m))==m) {
cout<<"Yes\n";
continue;}
cout<<"No\n";
}
咦,
没事,顺序换一下~~~
咦,0怎么是yes啊
没事,特判~~~
Last Code
#include<bits/stdc++.h>
using namespace std;
long long n,m;//不开long long见祖宗
int main() {
ios::sync_with_stdio(0);//cin/cout加速
cin>>n;
for(register long long i=1; i<=n; ++i) {
cin>>m;
if(m==0/*特判0*/||(int)(sqrt(m))*(int)(sqrt(m))==m//(int)取整,因为有可能不是完全平方数; {
cout<<"No\n";//真金不怕火炼~
continue;
}
//如果没有被continue掉
cout<<"Yes\n";
}
return 0;
}
完结撒世纪末彼岸花❀~