Bulb Switcher---319

来源:互联网 发布:知乎a tender feeling 编辑:程序博客网 时间:2024/06/05 11:40

题目大意:给你N个灯泡,N个灯泡的初始状态是off,先全开on,之后每第n次关n的倍数处的灯泡,问经过第N次后还有多少个灯泡亮着on?

题目分析:这个题归为一个数学问题。

                    首先,在草稿纸上画出这样一个图(1代表on,0代表off),画出N=1-10,经过题目所述规律后的结果

                    N=1       1

                    N=2       1  0

                    N=3       1  0  0

                    N=4       1  0  0  1                               多了一个灯on了!

                    N=5       1  0  0  1  0

                    N=6       1  0  0  1  0  0

                    N=7       1  0  0  1  0  0  0

                    N=8       1  0  0  1  0  0  0  0

                    N=9       1  0  0  1  0  0  0  0  1          又多了一个灯on了!

                    N=10     1  0  0  1  0  0  0  0  1  0

好的,各位朋友,到这里大家应该能得到一个规律了吧,就是当N是平方数的时候,就会多一个亮着的等,所以程序就很简单了。

class Solution {public:    int bulbSwitch(int n)     {        return ((int)sqrt(n));    }};

0 0
原创粉丝点击