猴子吃桃问题

来源:互联网 发布:linux 设置局域网ip 编辑:程序博客网 时间:2024/05/17 06:54

package algorithm;

/*
问题:猴子吃桃问题:小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个
如此下去,到第真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?
*/

public class 猴子吃桃问题 {


    /**
     * 用递归解决,原理:传一个天数下去,一层一层的往上推,推到最顶层10,则返回1。
     */
    public static int 递归(int day) {
        if (day == 10)
            return 1;
        else
            return (递归(day + 1) + 1) * 2;
    }


    /**
     *  用数列解决,将这一组数,看为一组数列,循环解决。
     */
    public static int 数列(int day){
        int d = day;
        int k=0;
        for(int i=9;i>0;i--){
            k=(d+1)*2;
            d = k;
        }
        return d;
       
       
    }
   
    public static void main(String[] args) {
        System.out.println(递归(1));
        System.out.println(数列(1));
    }

}