初始时有n个灯泡关闭。
第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。
第i 轮,每i个灯泡切换一次开关。 对于第n轮,你只切换最后一个灯泡的开关。
找出n轮后有多少个亮着的灯泡。
我第一次看这个题是以为每轮,每组全部都要转换开关,其实不是,它是每轮,每组的最后一个转换开关。
我已4个灯泡为例。
第二轮是每两个一组,每组的最后一个转换开关。
第三轮是每三个一组,每组的最后一个转换开关。
第一轮:开 开 开 开
第二轮:开 关 开 关
第三轮:开 关 关 关
第四轮:开 关 关 开
这是你再多写几组就会发现i个灯泡亮的个数是这i开根号取整数
代码:(int)Math.sqrt(i)
Java求解n轮后亮着的灯泡数量
博客围绕初始n个关闭灯泡,历经多轮开关操作展开。第1轮打开所有灯泡,第2轮每两个灯泡关闭一次,第i轮每i个灯泡切换开关,第n轮只切换最后一个灯泡开关,探讨用Java算法找出n轮后亮着的灯泡数量。
1069

被折叠的 条评论
为什么被折叠?



