猴子吃桃问题

 1 public static void main(String[] args) {
 2         /**
 3          * 猴子吃桃问题:
 4          * 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
 5          * 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
 6          * 以后每天早上都吃了前一天剩下的一半零一个。
 7          * 到第10天早上想再吃时,见只剩下一个桃子了。
 8          * 问:第一天摘了多少个桃子?
 9          */
10         System.out.println("第一天摘了:" + peach(1) + " 颗桃子");
11     }
12     public static int peach(int n){
13         /**
14          * 目标:猴子吃桃
15          * 公式: f(x) - f(x) / 2 = f(x + 1)
16          *       2f(x) - f(x) - 2 = 2f(x + 1)
17          *       f(x) = 2f(x + 1) + 2
18          *  求 f(1) = ?
19          *  终结点: f(10) = 1
20          */
21         if (n == 10)
22             return 1;
23         else
24             return 2 * peach(n + 1) + 2;
25     }

 

posted @ 2024-01-27 22:10  小※兽  阅读(8)  评论(0编辑  收藏  举报