智力题——7.机器人追赶

来源:互联网 发布:java什么是面向对象 编辑:程序博客网 时间:2024/04/29 06:07

两个机器人,初始时位于数轴上的不同位置。给这两个机器人输入一段相同的程序,使得这两个机器人保证可以相遇。程序只能包含“左移n个单位”、“右移n个单位”,条件判断语句If,循环语句while,以及两个返回Boolean值的函数“在自己的起点处”和“在对方的起点处”。你不能使用其它的变量和计数器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


    答案:两个机器人同时开始以单位速度右移,直到一个机器人走到另外一个机器人的起点处。然后,该机器人以双倍速度追赶对方。程序如下。

while(!at_other_robots_start) {
   move_right 1
}
while(true) {
  move_right 2
}

原创粉丝点击