首页 > 试题广场 >

给这两个机器人输入一段相同 的程序,使得这两个机 器人保证可

[问答题]
两个机器人,初始时位于数轴上的不同位置。给这两个机器人输入一段相同 的程序,使得这两个机 器人保证可以相遇。程序只能包含“左移 n 个单位”、“右移 n 个单位”,条件判断语句 If,循环语句 while, 以及两个返回 Boolean 值的 函数“在自己的起点处”和“在对方的起点处”。你不能使用其它的变量和 计数器,请写出该程序
两个机器人同时开始以单位速度右移,直到一个机器人走到另外一个机器人的起点处。然后,该机器人以双倍速度追赶对方。
发表于 2015-06-12 20:05:10 回复(0)

和单链表证环一个思路,快慢指针法的变形

发表于 2016-09-18 15:54:19 回复(1)
while(!at_other_robat_start())
    move_right(1);
while(true)
    move_right(2);
这个里面,其实我觉得是不可以掉头的,因为如果连起来是个圆的话,两个点正好在相对的直径上,这样掉头永远也不会相遇。而两倍的方法是可行的,因为方向相同,只是速度加倍。
发表于 2015-07-23 12:06:13 回复(0)
可以都往一个方向移,一直移动,总会有个机器人会到达对方的出发点的,这时可以确定另外一个机器人在它的前方,此时这个机器人可以以两倍的速度继续向前方移动。也可以这个机器人停止移动,另外一个向相反的方向移动。
发表于 2015-07-11 16:07:44 回复(0)
还是不能保证相遇。两个程序流程一样,会打架,得加入传感器,告诉彼此是否相遇。
发表于 2019-08-10 17:11:22 回复(0)
赶上和相遇是一个概念?
发表于 2016-08-29 16:06:35 回复(0)
while(!at_other_robot_start())
 move_right(1);
while(true)
 move_right(2);

发表于 2015-06-19 09:31:33 回复(0)
while(!at_other_robots_start)
 { move_right 1 } 
while(true) 
{ move_right 2 }
编辑于 2015-06-08 10:05:01 回复(0)
答案合理即可,下面是一个参考:
while (!at_other_robot_start())
 move_right(1);
while (true)
 move_right(2)

发表于 2015-05-05 14:34:04 回复(0)