319. Bulb Switcher

来源:互联网 发布:python issubclass 编辑:程序博客网 时间:2024/06/14 09:27

There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it's off or turning off if it's on). For theith round, you toggle every i bulb. For the nth round, you only toggle the last bulb.Find how many bulbs are on aftern rounds.

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.
思路:

初始状态,所有的灯泡都是熄灭的,最终的状态应该是他们翻转的次数,如果是奇数,就是亮,如果是偶数就是熄灭。

所以,检查所有数的乘积因子,除了平方之外,都是偶数个,所以只有平方数的灯泡是亮着的。

public static int bulbSwitch(int n) {return (int)(n >= 0 ? Math.sqrt(n) : 0);}



0 0
原创粉丝点击