在idea用Java编写一个程序模拟龟兔赛跑,乌龟的速度为1米/1500毫秒,兔子的速度为5米/500毫秒,等兔子跑到第700米时选择休息10000毫秒,结果乌龟赢得了比赛。
时间: 2024-02-22 20:58:40 浏览: 169
好的,下面是实现代码:
```java
public class TurtleRabbitRace {
public static void main(String[] args) throws InterruptedException {
int totalDistance = 1000; // 赛道总长度
int turtleSpeed = 1500; // 乌龟速度,单位毫秒/米
int rabbitSpeed = 500; // 兔子速度,单位毫秒/米
int rabbitRestDistance = 700; // 兔子休息点
int rabbitRestTime = 10000; // 兔子休息时间,单位毫秒
int turtleDistance = 0; // 乌龟已跑距离
int rabbitDistance = 0; // 兔子已跑距离
while (turtleDistance < totalDistance && rabbitDistance < totalDistance) {
// 乌龟跑一步
turtleDistance++;
Thread.sleep(turtleSpeed);
// 兔子跑一步
rabbitDistance++;
if (rabbitDistance == rabbitRestDistance) {
System.out.println("兔子选择休息" + rabbitRestTime/1000 + "秒钟。");
Thread.sleep(rabbitRestTime);
} else {
Thread.sleep(rabbitSpeed);
}
// 打印当前比赛情况
System.out.println("乌龟已跑" + turtleDistance + "米,兔子已跑" + rabbitDistance + "米。");
}
// 比赛结束,判断胜负
if (turtleDistance >= totalDistance && rabbitDistance >= totalDistance) {
System.out.println("乌龟和兔子同时到达终点,比赛平局。");
} else if (turtleDistance >= totalDistance) {
System.out.println("乌龟赢得比赛!");
} else {
System.out.println("兔子赢得比赛!");
}
}
}
```
程序的思路是通过一个 while 循环模拟比赛过程,每次循环中乌龟和兔子都跑了一步,通过 Thread.sleep() 方法控制速度和休息时间,直到有一方跑到终点为止。最后输出胜者。注意,为了避免精度问题,本程序将速度用毫秒作为单位表示。
阅读全文