一、题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a9b8f90b2294fcf8a88669afd165b0b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAd2VpeGluXzQ1Nzk0Mjk5,size_11,color_FFFFFF,t_70,g_se,x_16)
二、思路
1、找到规律,当n可以开平方时,那么它的因数是奇数个,奇数个的话就会导致状态变化,由关闭->开启;
2、如果不可以开方,则因数是偶数个,偶数个就不会导致状态变化
三、代码
class Solution {
public:
int bulbSwitch(int n) {
if(n==0)
{
return 0;
}
int Count=0;
for(int i=1;i<=n;++i)
{
int temp=pow(i,0.5);
if(temp*temp==i)
{
Count++;
}
}
return Count;
}
};