猴子吃桃问题(递归)

**猴子吃桃问题:**有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第十天时,想再吃但是还没有吃, 发现只有一个桃子了。问:最初有多少个桃子?
分析:

  • day 10 桃子有 1个
  • day 9 桃子有(1+1)*2个 =4个 ==》(day10+1)*2
  • day 8 桃子有(4+1)*2个 =10个 ==》(day9+1)*2
  • 规律:前一天的桃子数 = (后一天的桃子数+1)*2
public class P221MonkeyEatpean {
    public static void main(String[] args) {
        Peach peach= new Peach();//实例化一个桃子对象
        int n =8;//用变量n来存放需要知道的天数
        int sum1 = peach.sum(n);//第n天的桃子总数
        System.out.println("第"+n+"day桃子总数为:"+sum1);
    }
}
class Peach{
    public int sum(int n){
        if (n == 10){//第十天的时候只有一个
            return 1;
        }else if(n>0 && n<10){//1--10天内的桃子数
            return (sum(n+1)+1)*2;//递归方法
        }else {
            System.out.println("天数在1--10之间");
            return 0;
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值