1 public class exercise02{ 2 public static void main(String[] args){ 3 4 /* 5 猴子吃桃子問題:有一堆桃子,猴子第一天吃了其中的一半,並多吃了一個! 6 以後每天猴子都吃其中的一半,然後再多吃一個。當到第10天時, 7 想再吃時(即還沒吃),發現只有一個桃子了。問題:最初共多少個桃子? 8 9 思路分析 逆推 10 1.day = 10時 有1個桃子 11 2.day = 9時 有(day10 + 1)*2 = 4 12 3.day = 8時 有(day 9 + 1)*2 = 10 13 4.規律就是 前一天的桃子 = (後一天的桃子 + 1)*2//就是我們的能力 14 5.遞迴 15 */ 16 T t1 = new T(); 17 int day = 9; 18 int peachNum = t1.peach(day); 19 if(peachNum != -1){ 20 System.out.println("第"+ day +"天有"+ peachNum + "個桃子"); 21 } 22 } 23 } 24 25 26 class T{ 27 public int peach(int day){ 28 if(day == 10){//第10天,只有1個桃 29 return 1; 30 31 }else if(day >= 1 && day <= 9){ 32 return(peach(day + 1) + 1)*2;//規則 33 }else{ 34 System.out.println("day 在 1-10"); 35 return -1; 36 } 37 } 38 39 40 }