java 319. Bulb Switcher.java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 319. Bulb Switcher.java相关的知识,希望对你有一定的参考价值。

/*A bulb ends up on iff it is switched an odd number of times.

Call them bulb 1 to bulb n. Bulb i is switched in round d if and only if d divides i. So bulb i ends up on if and only if it has an odd number of divisors.

Divisors come in pairs, like i=12 has divisors 1 and 12, 2 and 6, and 3 and 4. Except when i is a square, like 36 has divisors 1 and 36, 2 and 18, 3 and 12, 4 and 9, and double divisor 6. So bulb i ends up on if and only if i is a square.

So just count the square numbers.

Let R = int(sqrt(n)). That's the root of the largest square in the range [1,n]. And 1 is the smallest root. So you have the roots from 1 to R, that's R roots. Which correspond to the R squares. So int(sqrt(n)) is the answer. (C++ does the conversion to int automatically, because of the specified return type).
*/
public class Solution {
    
    public int bulbSwitch(int n) {

        return (int)Math.sqrt(n);
    }
}

以上是关于java 319. Bulb Switcher.java的主要内容,如果未能解决你的问题,请参考以下文章

java 319. Bulb Switcher.java

java 319. Bulb Switcher.java

java 319. Bulb Switcher.java

java 319. Bulb Switcher.java

319. Bulb Switcher

319 bulb switcher