Chinaunix首页 | 论坛 | 博客
  • 博客访问: 773587
  • 博文数量: 17
  • 博客积分: 10303
  • 博客等级: 上将
  • 技术积分: 2020
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-04 21:56
文章分类

全部博文(17)

文章存档

2010年(3)

2009年(2)

2008年(12)

分类:

2008-09-15 18:30:39

    在一条走廊上有10000个灯,每个灯下有一个开关,是切换的开关,按一下就开,再按一下就关。现在这些灯全部是关着的。
    现在走廊来了第1个人,他经过走廊时把所有的1到10000个灯的开关都按了。 
    第2个人来了,他把2,4,6,8,10等等一直到10000的灯的开关都按了。他按的灯都是2的倍数的灯。 
    第3个人来了,把3,6,9,12等等灯的开关按了,他按的是3的倍数的灯。 
    第4个人把4,8,12,16,20的灯开关按了,他按的是4的倍数的灯。 
    依此类推,直到第10000个人来,把第10000号灯的开关按下。 
    请问最后有哪几号灯是开着的?还要解释一下为什么啊。
阅读(2019) | 评论(10) | 转发(0) |
0

上一篇:周末的丰盛晚餐

下一篇:海口行

给主人留下些什么吧!~~

xiaophedap2008-09-17 21:00:42

楼上的,你的答案错了。

xizhong2008-09-17 18:04:56

没必要用程序,太暴力了。 每个数的因子都会去按次开关,可是这里的每个数因式分解时:“1*本身”中的1没去按开关。这样,每个灯被按下的次数为奇数(第1个开关没按),自然所有灯都开喽。

xiaophedap2008-09-16 16:22:58

厉害~ 程序的结果是对的,不过用数学语言表达,不是一句话就可以说明结果了吗?

pane2008-09-16 10:42:27

运行结果如下: 最初所有灯为关闭状态! 通过计算,第10000个人通过后走廊里为打开状态的灯有: 第 1 号灯的状态为 开 第 4 号灯的状态为 开 第 9 号灯的状态为 开 第 16 号灯的状态为 开 第 25 号灯的状态为 开 第 36 号灯的状态为 开 第 49 号灯的状态为 开 第 64 号灯的状态为 开 第 81 号灯的状态为 开 第 100 号灯的状态为 开 第 121 号灯的状态为 开 第 144 号灯的状态为 开 第 169 号灯的状态为 开 第 196 号灯的状态为 开 第 225 号灯的状态为 开 第 256 号灯的状态为 开 第 289 号灯的状态为 开 第 324 号灯的状态为 开 第 361 号灯的状态为 开 第 400 号灯的状态为 开 第 441 号灯的状态为 开 第 484 号灯的状态为 开 第 529 号灯的状态为 开 第 576 号灯的状态为 开 第 625 号灯的状态为 开 第 676 号灯的状态为 开 第 729 号灯的状态为 开 第 784 号灯的状态为 开 第 841 号灯

pane2008-09-16 10:38:32

//C++程序计算 # include main(){ int m=10000; bool bol[m]; //首先将所有的灯都置关闭状态:0  (打开状态为:1) for(int x=1;x<=m;x++) bol[x]=false; cout<<"最初所有灯为关闭状态!"<