[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)); }
相关文章推荐
- 一、对象导论(三)
- 20135320赵瀚青LINUX第八周学习笔记
- spark入门教程(3)--Spark 核心API开发
- mycat 启动失败 The specified size exceeds the maximum representable size
- C语言小程序
- hdu1358 KMP循环节
- mysqli的认识与应用
- BigDecimal计费
- 团队计划会议-01
- 转:mybatis3中@SelectProvider的使用技巧
- Error MSB6006: “mt.exe”已退出,代码为 31
- 关于取模和取余的区别。
- android socket基于mina框架实现和服务器长连接
- IOS学习之[深入浅出Cocoa]iOS网络编程之Socket
- NYOJ-23 取石子(一)
- 虚幻4 渲染线程主循环
- atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy
- 三角形5
- Eclipse中使用Ant打Android包报错及解决方案
- 用SurfaceView实现Android游戏摇杆