Joler 在一个半径为𝑟(1 ≤ 𝑟 ≤ 100)的圆桌上玩机器人,他可以向机器人发送四种指令使它移 动。设机器人的位置为(𝑥, 𝑦),则他的指令效果如下: U:移动到(𝑥 + 1, 𝑦); D:移动到(𝑥 − 1, 𝑦); R:移动到(𝑥, 𝑦 + 1); L:移动到(𝑥, 𝑦 − 1); 机器人的起始位置在圆桌的正中心(0, 0)处,给出 Joler 的指令序列,机器人会严格按照顺序 执行指令。如果操作中的任意时刻机器人掉下了圆桌,则输出”Oops!”;反之若机器人全程 没有掉下圆桌,则输出”Perfect!”(均不含引号)。使用java语言
时间: 2023-04-04 07:04:47 浏览: 446
机器人移动问题可以使用简单的模拟算法来解决。我们可以使用两个变量x和y来表示机器人的位置,然后根据指令移动机器人的位置。在移动机器人之前,我们需要检查机器人是否会掉下圆桌。如果机器人的位置超出了圆桌的半径,则输出”Oops!”并结束程序。否则,继续执行指令序列。当机器人执行完所有指令后,如果机器人仍然在圆桌上,则输出”Perfect!”,否则输出”Oops!”。
以下是Java代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int r = scanner.nextInt();
String commands = scanner.next();
int x = 0, y = 0;
for (int i = 0; i < commands.length(); i++) {
char c = commands.charAt(i);
switch (c) {
case 'U':
y++;
break;
case 'D':
y--;
break;
case 'R':
x++;
break;
case 'L':
x--;
break;
}
if (x * x + y * y > r * r) {
System.out.println("Oops!");
return;
}
}
System.out.println("Perfect!");
}
}