现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反,第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着。
代码如何实现:
现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反,第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着。
代码如何实现:
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
補充一下 @hsfzxjy 所說的
因為進行第
i
趟開關的時候, 會把i
的倍數的燈開關也就是說, 因數有
i
的燈泡在此趟會被開關從上面可以推出:
又可以歸納出:
如果你要完全模擬這個狀況的話, 這邊有 Python 的代碼:
但根據上面的結論, 你只要知道燈泡數內有幾個完全平方數就好了:
我回答過的問題: Python-QA