题目 灯泡初始状态为off
每一轮将是n的倍数的开关调转状态。
求最后灯泡是on的个数。
思路:由于 1 = 1*1
2 = 2*1 1*2
3 = 3*1 1*3
每个数每次分解都会改变状态,但由于分解的对称性,除了平方数,其余的都会回到初始状态,因为都翻转了偶数倍;
所以结果就是返回n的平方根的整数位;
代码很简单 如下:
class Solution {
public int bulbSwitch(int n) {
return (int)Math.sqrt(n);
}
}