开关问题

来源:互联网 发布:淘宝网店图文详情编辑 编辑:程序博客网 时间:2024/04/27 14:34

有编号为1--100的灯初始状态是全开着的,现进行如下操作:
编号是1的倍数灯拨一下开关,
(开--关算一次拨操作;关--开算一次拨操作)
是2的倍数灯再拨一下开关,
是3的倍数的灯再拨一下开关,
......
如此直到100的倍数
问:
最后熄灭的灯的编号?

答:

这样分析,他要找的是最后关的灯,也就要从最后一次操作开始往前推算,看看能找到的第一个关灯的动作是对哪个灯的,所以,自然,从100开始往前推!

100的约数有1 ,2 ,4, 5, 10, 20, 25 ,50, 100,那么100号灯也只有在对编号是这些数的倍数灯进行操作时,才会被拨开关.在最开始对所有编号是1的倍数的等进行操作时,100号灯应该是从开到关(初始状态,所有的灯都是开着的),对100号灯的所有操作应该如下:

1    2    4    5    10    20    25    50    100

关 开   关   开   关,    开     关    开     关

所以,最后一次操作,其实只能对100号灯进行操作,并且是关灯操作,100号灯也就成了最后被关的灯!!