猴子吃桃子問題:有一堆桃子,猴子第一天吃了其中的一半,並多吃了一個! 以後每天猴子都吃其中的一半,然後再多吃一個。當到第10天時, 想再吃時(即還沒吃),發現只有一個桃子了。問題:最初共多少個桃子?

勤奋的小番茄發表於2024-08-11
 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 }

相關文章