1. 程式人生 > 其它 >猴子吃桃問題java

猴子吃桃問題java

問題描述:

猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將第一天剩下的桃子吃掉一半,有多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第 10 天早上想再吃時,發現只剩下一個桃子了。編寫程式求猴子第一天摘了多少個桃子

採用遞迴的方法解決:
程式碼如下:

public static void main(String[] args) {
	Scanner sca = new Scanner(System.in);
	//這裡靈活一點
	System.out.print("輸入第幾天可查詢其當天猴子剩下的桃子數:");
	int n = sca.nextInt();
	EatPeach eat = new EatPeach();
	int sum = eat.peach(n);
	if(sum != -1)
		System.out.println("第" + n + "天的桃子數為:" + sum);	
	else
		System.out.println("FBI Warning 請輸入1-10的正整數!!!");
	sca.close();
}

public int peach(int day){
	if(day == 10) {
		return 1;
	}else if(day >= 1 && day <=9 ) {
	//如果不是第十天,就返回後一天的二倍並且加一
		return (peach(day+1)+1)*2;
	}else {
		return -1;
	}	
}

}

結果截圖如下:

正確輸入:

錯誤輸入:

兄弟們繼續加油!!!