7.7 如何判断有几盏灯泡还亮着
2025年09月21日
7.7 如何判断有几盏灯泡还亮着
【出自HW面试题】
难度系数:★★★★☆ 被考察系数:★★★★☆
题目描述:
100个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个,即排在偶数的灯泡被关掉;第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。依次类推,第100轮结束的时候,有几盏灯泡还亮着?
分析与解答:
(1)对于每盏灯,当拉动的次数是奇数时,灯就是亮着的,当拉动的次数是偶数时,灯就是关着的。
(2)每盏灯拉动的次数与它的编号所含约数的个数有关,它的编号有几个约数,这盏灯就被拉动几次。
(3)1~100这100个数中有哪几个数,约数的个数是奇数?
我们知道,一个数的约数都是成对出现的,只有完全平方数约数的个数才是奇数个。
所以,这100盏灯中有10盏灯是亮着的,它们的编号分别是:1、4、9、16、25、36、49、64、81和100。
下面是程序的实现:
程序的运行结果如下:
亮着的灯的编号是:1
亮着的灯的编号是:4
亮着的灯的编号是:9
亮着的灯的编号是:16
亮着的灯的编号是:25
亮着的灯的编号是:36
亮着的灯的编号是:49
亮着的灯的编号是:64
亮着的灯的编号是:81
亮着的灯的编号是:100
最后总共有10盏灯亮着。