赞
踩
结题思路:首先要根据题目要求,模拟比赛,每秒钟给兔子和乌龟增加相应的路程,在这里我选用while做死循环,留好相应的退出条件,在循环中,做出相应的判断,及兔子睡觉时乌龟的前进路程。最后根据相应的结果,按照格式输出。
解题难点:如何判断循环出口,即获得冠军的种种情况,我们要分多条线去思考,可能会是在兔子没有睡觉得情况下比赛结束,有可能是在兔子的睡梦中结束了比赛。根据不同的情况,留好相应的出口。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanf = new Scanner(System.in); int v1 = scanf.nextInt(); //兔子的速度 int v2 = scanf.nextInt(); //乌龟的速度 int t = scanf.nextInt(); //兔子领先距离设定 int s = scanf.nextInt(); //兔子休息时间设定 int l = scanf.nextInt(); //比赛总路程设定 int Rl = 0; //比赛结束兔子路程 int Tl = 0; //比赛结束乌龟路程 int time = 0; //比赛总用时 boolean flag = false; while(true) { //做死循环假设比赛不间断的进行 time++; Rl += v1; Tl += v2; if(Rl >= l || Tl >= l) //判断正常情况下退出条件 break; if(Rl-Tl >= t) { //处理兔子睡觉时发生的情况 for(int i = 0 ;i < s;i++) { Tl += v2; time++; if(Tl >= l) { //如果睡觉期间乌龟已到达终点的情况 flag = true; break; } } if(flag) break; } } if(Rl < Tl) //根据结果输出相应的信息 System.out.println("T"); else if(Rl == Tl) System.out.println("D"); else System.out.println("R"); System.out.print(time); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。