💡灯泡开关问题详解:数学与编程的完美结合
📘 题目描述
你面前有 n
个灯泡,初始时全部处于关闭状态。
你将对这些灯泡进行 n
轮操作:
- 第 1 轮:打开所有灯泡。
- 第 2 轮:每两个灯泡,切换一次第 2 个、第 4 个、第 6 个……(即编号是 2 的倍数的灯泡)。
- 第 3 轮:每三个灯泡,切换一次第 3 个、第 6 个、第 9 个……的灯泡。
- ...
- 第 i 轮:切换每个编号为 i 的倍数的灯泡的开关。
- ...
- 第 n 轮:只切换编号为 n 的灯泡。
问题:在进行完第 n 轮操作之后,返回最终亮着的灯泡数量。
🔍 解题分析
🧠 关键思路:
我们不妨换个角度来思考这个问题:
一个灯泡被切换了多少次,就决定了它最终是开还是关。
- 灯泡初始是关闭的。
- 如果被切换奇数次,最终会亮着;
- 如果被切换偶数次