319 Bulb Switcher 灯泡开关

初始时有 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

posted on 2018-04-14 15:42  lina2014  阅读(169)  评论(0编辑  收藏  举报

导航