简单递归求猴子吃桃子问题

猴子第一天摘下若干桃子,当即吃了一半,觉得好不过瘾,于是又多吃了一个
第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个
以后每天都是吃前天剩余桃子数量的一半,觉得好不过瘾,又多吃了一个
等到第10天的时候发现桃子只有1个了。

需求:请问猴子第一天摘了多少个桃子?

分析:
  整体来看,每一天都是做同一个事件,典型的规律化问题,考虑递归三要素:
  递归公式:f[n] = f[n-1]*2;
  递归终结点:n == 1 ;
  递归方向:sum增加
public class Demo {
    static int sum=1;
    public static void main(String [] args){
        Scanner input = new Scanner(System.in);
        System.out.println("第一天桃子数为:"+f(input.nextInt()));
    }
    public static int f(int n){
        if(n == 1) return sum;
        return f(n-1)*2;
    }
}

输入:10

输出:512

posted @ 2022-03-10 23:48  BingeBlog  阅读(130)  评论(0编辑  收藏  举报