[Java] 藍橋杯BASIC-24 基礎練習 龜兔賽跑預測
阿新 • • 發佈:2018-12-13
問題描述話說這個世界上有各種各樣的兔子和烏龜,但是研究發現,所有的兔子和烏龜都有一個共同的特點——喜歡賽跑。於是世界上各個角落都不斷在發生著烏龜和兔子的比賽,小華對此很感興趣,於是決定研究不同兔子和烏龜的賽跑。他發現,兔子雖然跑比烏龜快,但它們有眾所周知的毛病——驕傲且懶惰,於是在與烏龜的比賽中,一旦任一秒結束後兔子發現自己領先t米或以上,它們就會停下來休息s秒。對於不同的兔子,t,s的數值是不同的,但是所有的烏龜卻是一致——它們不到終點決不停止。然而有些比賽相當漫長,全程觀看會耗費大量時間,而小華髮現只要在每場比賽開始後記錄下兔子和烏龜的資料——兔子的速度v1(表示每秒兔子能跑v1米),烏龜的速度v2,以及兔子對應的t,s值,以及賽道的長度l——就能預測出比賽的結果。但是小華很懶,不想通過手工計算推測出比賽的結果,於是他找到了你——清華大學計算機系的高才生——請求幫助,請你寫一個程式,對於輸入的一場比賽的資料v1,v2,t,s,l,預測該場比賽的結果。
package base24; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int v1 = in.nextInt();//兔子速度 int v2 = in.nextInt();//烏龜速度 int t = in.nextInt();//領先t米或以上 int s = in.nextInt();//停下來休息s秒 int l = in.nextInt(); int l1 = 0;//兔子當前跑的長度 int l2 = 0;//烏龜跑的長度 int breakTime = 0;//兔子休息時間 int flag = 1; //不在休息 int countTime = 0; while (l1 < l && l2 < l) { if (flag == 1 && l1 - l2 < t || flag == 0 && breakTime >= s) { flag = 1; l1 += v1; breakTime = 0; } else { flag = 0; breakTime++; } l2 += v2; countTime++; } if (l1 > l2) { System.out.println("R " + countTime); } else if (l1 < l2) { System.out.println("T " + countTime); } else if (l1 == l2) { System.out.println("D " + countTime); } } }