猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个! 以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时, 想再吃时(即还没吃),发现只有一个桃子了。问题:最初共多少个桃子?

 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 }

 

posted @ 2024-08-11 10:36  勤奋的小番茄  阅读(67)  评论(0编辑  收藏  举报