1. 程式人生 > >319 Bulb Switcher 燈泡開關

319 Bulb Switcher 燈泡開關

rip .cn problems highlight leetcode 一次 esc tps ++

初始時有 n 個燈泡關閉。 第 1 輪,你打開所有的燈泡。 第 2 輪,每兩個燈泡切換一次開關。 第 3 輪,每三個燈泡切換一次開關(如果關閉,則打開,如果打開則關閉)。對於第 i 輪,你每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後一個燈泡的開關。 找出 n 輪後有多少個亮著的燈泡。
示例:
給定 n = 3。狀態off表示燈泡關閉,on表示開啟。
初始時, 燈泡狀態 [off, off, off].
第一輪後, 燈泡狀態 [on, on, on].
第二輪後, 燈泡狀態 [on, off, on].
第三輪後, 燈泡狀態 [on, off, off].
你應該返回1,因為只有一個燈泡還亮著。
詳見:https://leetcode.com/problems/bulb-switcher/description/
C++:

class Solution {
public:
    int bulbSwitch(int n) {
        int res=1;
        while(res*res<=n)
        {
            ++res;
        }
        return res-1;
    }
};

參考:http://www.cnblogs.com/grandyang/p/5100098.html

319 Bulb Switcher 燈泡開關