JAVA猴子吃桃问题的思路解析

 2023-02-24 00:31:53  阅读 0

       相信大家在刷题时,都有遇到过猴子吃桃的问题,当然如果您没遇到过,也可以看看这个问题的思路呦。先简单介绍一下什么是猴子吃桃问题。

猴子吃桃问题:

       有一堆桃儿,猴子第一天吃了其中的一半,他觉得这也不够呀于是又吃了一个,之后每一天小猴都吃其中的一半,接着再吃一个。到了第十天,想吃还没吃时小猴发现哎呦就只有一个桃了。问:最开始有几个桃儿?介绍完问题,大家先停下想想自己如何处理本题,接着就为大家进行思路分析。

思路分析:

       通过问题我们可以看到已知条件中第十天有1个桃最具体,所以我们可以采用逆推思想。即第十天有一个桃,第九天有第十天加一个桃子然后再乘2的桃子量,用数学表达式可以写成day9=(day10+1)*2,第八天有第九天加一个桃子然后再乘2的桃子量,用数学表达式可以写为day8=(day9+1)*2。推到这里相信机智的大家已经发现了规律,规律就是前一天的桃子=(后一天的桃子+1)*2。这就是一个递归。

代码思路:

  public int monkeyeatpeach(int day){
        if(day==10){
            return 1;//第10天只有一个桃
        }else if(day>=1&&day<=9){
            return(monkeyeatpeach(day+1)+1)*2;//这个day+1表示的是后一天的桃子量因为前面给了初始值day,如果是10的话返回1,如果是第一到第九天则加一个再计算。
        }else{
            System.out.println("天数只能是1到10的整数");
        }
    }

 

下一篇: Eureka学习笔记
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码