本文共 241 字,大约阅读时间需要 1 分钟。
LeetCode题目319:灯泡开关问题。题目描述:初始时有n个灯泡关闭。第1轮打开所有灯泡。第2轮,每两个灯泡关闭一次。第3轮,每三个灯泡切换一次开关。依此类推。第i轮,每i个灯泡切换一次开关。第n轮,只切换最后一个灯泡。求n轮后有多少灯泡亮着。
分析:每个灯泡i会被切换的次数等于i的因数数目。若因数数目为奇数,则灯泡亮;否则熄灭。完全平方数的因数数目为奇数,因此亮灯的数目为不超过n的平方数的数目,即floor(sqrt(n))。
代码实现:直接返回sqrt(n)的整数部分。
转载地址:http://vmhqz.baihongyu.com/