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 }