{__STYLE__}
◆ 1. 如果你有一个容量为5夸脱的水桶和一个容量为3夸脱的水桶,怎样准确地量出4夸脱的水?
◆ 2. 在开汽车的锁时,应该往哪个方向旋转钥匙?
◆ 3. 如果你可以移动50个州中的任何一个,你会挑哪个,为什么?
◆ 4. 有4条狗(4只蚂蚁或4个人)分别在一个广场的4个角落里。突然,它们同时以同样的速度追赶在自己顺时针方向的一个人,而且会紧追这个目标不放。它们需要多少时间才能相遇,相遇地点在哪里?
提示:它们将在广场中央相遇,所跑的距离与它们跑的路线无关。
◆ 5. 从空中放下两列火车,每列火车都带着降落伞,降落到一条没有尽头的笔直的铁道上。两列火车之间的距离不清楚。两列车都面向同一个方向。在落地后,降落伞掉在地上,与火车分离。两列火车都有一个微芯片,可以控制它们的运动。两个芯片是相同的。两列火车都不知道自己的位置。你需要在芯片中写入编码,让这两列火车相遇。每行编码都有一定的执行命令的时间。
你能使用以下指令(而且只能用这些指令):
MF—让火车朝前开
MB—让火车朝后开
IF(P)—如果火车旁边有降落伞,这个条件就得到了满足。
GOTO
答案:
A:MF
IF(P)
GOTO B
GOTO A
B:MF
GOTO B
解释:第一行只是让它们离开各自的降落伞。必须让它们离开自己的降落伞,这样后面的火车才能发现前面火车的降落伞,这样就满足了一个条件,它们就可以跳出起初遵守的编码。它们起初都在A这部分循环,直到后面的火车发现前面火车的降落伞,这时就转入B:并陷入B的循环。前面的火车还是没有找到降落伞,所以就不停地在A里面循环。由于每行编码都有一定的执行命令时间,完成A循环就比完成B费时,因此后面的火车(在B循环中)最终将赶上前面的火车。