1. 程式人生 > >2106 藍橋杯 憤怒小鳥

2106 藍橋杯 憤怒小鳥

藍橋杯  憤怒小鳥問題


憤怒小鳥


X星球憤怒的小鳥喜歡撞火車!


一根平直的鐵軌上兩火車間相距 1000 米
兩火車 (不妨稱A和B) 以時速 10米/秒 相對行駛。


憤怒的小鳥從A車出發,時速50米/秒,撞向B車,
然後返回去撞A車,再返回去撞B車,如此往復....
兩火車在相距1米處停車。


問:這期間憤怒的小鳥撞 B 車多少次?


注意:需要提交的是一個整數(表示撞B車的次數),不要填寫任何其它內容。


看一眼題目,有種用迴圈解決的衝動,無奈細想來發現需要注意的地方太多,發現有的博主用遞迴來解決,果然省時又省力~~(原博主找不到了~~感謝分享~~)

package 總決賽;
public class 憤怒小鳥 { 

	static int i = 0; 
	static int time = 0; 
    public static double f(double length) { //兩車相距的距離
    	double t = length / 60; //小鳥從一個車走到另一個車的時間
    	length = length - 2 * t * 10; //小鳥從A車走到B車後兩車的距離
    	if (length <= 1) { 
    	return 0; 
    	} 
    	if (i % 2 == 0) { 
    	time++; 
    	} 
    	i++; 
    	return f(length); 
    	} 
    	}
	public static void main(String[] args) { 
	f(1000); 
	System.out.println(time); 
	} 
答案為9

ps:我竟然才發現csdn程式碼段是可以選擇語言的。。。