猴子吃桃算法

来源:互联网 发布:淘宝客中的推广计划 编辑:程序博客网 时间:2024/05/06 19:57

转载请标明出处:http://blog.csdn.net/yuqing_1102/article/details/56013226

1.算法描述:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?

2.分析

这是一个很经典的递归算法,只要找到递归公式就迎刃而解第n天桃子总数 - (第n天桃子总数/2  + 1) = 第n+1天桃子总数S1 = 2(S2 + 1)S2 = 2(S3 + 1)...Sn = 2(S(n+1)  +  1)

3.算法:

public class TestPeach {    public static void main(String[] args) {        System.out.println(sumPeach(1));        }    /**     * 递推算法     * @param day 第n天     * @return 第n天桃子总数     */    private static int sumPeach(int day){        if (day == 10) {            return 1;        }        return 2 * (sumPeach(day+1)+1);    }}
0 0
原创粉丝点击