Example:
Given n = 3.
At first, the three bulbs are [off, off, off].
After first round, the three bulbs are [on, on, on].
After second round, the three bulbs are [on, off, on].
After third round, the three bulbs are [on, off, off].
So you should return 1, because there is only one bulb is on.
对于解这道题目如果直接想不到什么方法,那就举一个具体的例子分析,我们假设灯泡个数n等于10,N代表on, F代表off,这个执行的过程如下:
从中可以看出只有1,4, 9 三个灯泡被toggle了偶数次(把所有灯打开之后的次数), 其余都是被toggle了奇数次,因此我们只需要得到灯泡个数中有几个平方数就可以了。代码很简单:
public class Solution { public int bulbSwitch(int n) { return (int) Math.sqrt(n); } }