您的位置:首页 > 其它

[leetcode]319. Bulb Switcher

2016-04-13 20:53 309 查看
考虑第n个灯的最终状态。显然,在第i轮,只要i是n的因子,包括n,都会改变第n个bulb的状态。当bulb的改变次数(因子个数)为偶数时,灯为开,否则,灯为灭。另外考虑n的一个因子p,对应的另一个因子q=n/p显然也是n的因子。也就是说,当p!=q时因子是成对出现的。那么显然,如果n=p^2,那么n的因子个数为奇数个,否则为偶数个。最终n个灯中,只有i为完全平方数的等bulb(i)会开,所以一共有sqrt(n)个灯会开。代码如下:

int bulbSwitch(int n) {
return sqrt(double(n));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: