文章目录
  1. 1. Bulb Switcher

Bulb Switcher


给定n个灯泡,这些灯泡在最初都是关闭的。第一轮打开所有的灯泡,之后第i轮将“toggle”每i个灯泡,所谓toggle就是指灯泡原来关闭的把它打开;原来打开的把它关闭。

比如给定3个灯泡

最初的状态是[off,off,off]

第一轮后的状态是[on,on,on]

第二轮后的状态是[on,off,on]

第三轮后的状态是[on,off,off]

最终求n轮过后还有多少个灯泡开着,上面的例子返回是1。

这道题目经尝试可以发现下面的规律,当因数为偶数个时,灯泡总归会被消掉,比如27(当灯泡个数超过27个时),27有1与27,3与9;12有1与12,2与6,3与4。可以发现他们的因数都是偶数,那么在这些因数轮时会将灯泡置回off。

当因数为个数个时,那么就会被打开。那哪些数会是奇数个因数呢?平方数。所以这道题目只需要返回输入的平方根取整数就是了。

文章目录
  1. 1. Bulb Switcher