龜兔賽跑預測

問題描述 話說這個世界上有各種各樣的兔子和烏龜,但是研究發現,所有的兔子和烏龜都有一個共同的特點——喜歡賽跑。
 *         於是世界上各個角落都不斷在發生着烏龜和兔子的比賽,小華對此很感興趣,於是決定研究不同兔子和烏龜的賽跑。他發現,兔子雖然跑比烏龜快,
 *         但它們有衆所周知的毛病——驕傲且懶惰,於是在與烏龜的比賽中,一旦任一秒結束後兔子發現自己領先t米或以上,它們就會停下來休息s秒。
 *         對於不同的兔子,t,s的數值是不同的,但是所有的烏龜卻是一致——它們不到終點決不停止。
 *         然而有些比賽相當漫長,全程觀看會耗費大量時間,而小華髮現只要在每場比賽開始後記錄下兔子和烏龜的數據——兔子的速度v1(
 *         表示每秒兔子能跑v1米),烏龜的速度v2,以及兔子對應的t,s值,以及賽道的長度l——就能預測出比賽的結果。但是小華很懶,
 *         不想通過手工計算推測出比賽的結果,於是他找到了你——清華大學計算機系的高才生——請求幫助,請你寫一個程序,對於輸入的一場比賽的數據v1,
 *         v2,t,s,l,預測該場比賽的結果。 輸入格式
 *         輸入只有一行,包含用空格隔開的五個正整數v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=
 *         10000且爲v1,v2的公倍數) 輸出格式
 *         輸出包含兩行,第一行輸出比賽結果——一個大寫字母“T”或“R”或“D”,分別表示烏龜獲勝,兔子獲勝,或者兩者同時到達終點。
 *         第二行輸出一個正整數,表示獲勝者(或者雙方同時)到達終點所耗費的時間(秒數)。 樣例輸入 10 5 5 2 20 樣例輸出 D 4

 *         樣例輸入 10 5 5 1 20 樣例輸出 R 3 樣例輸入 10 5 5 3 20 樣例輸出 T 4

public class 龜兔賽跑預測 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		int v1 = sc.nextInt();
		int v2 = sc.nextInt();
		int t = sc.nextInt();
		int s = sc.nextInt();
		int l = sc.nextInt();
		int s1 = 0, s2 = 0, time = 0;
		while (s1 < l && s2 < l) {
			if (s1 - s2 >= t) {
				if ((l - s2) / v2 < s) {
					time += (l - s2) / v2;
					s2 = l;
				} else {
					time += s;
					s2 += v2 * s;
				}
			} else {
				time++;
				s1 += v1 * 1;
				s2 += v2 * 1;
			}
		}

		if (s1 > s2) {
			System.out.println("R");
		} else if (s1 < s2) {
			System.out.println("T");
		} else {
			System.out.println("D");
		}
		System.out.println(time);
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章