猴子吃桃

Posted OYP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猴子吃桃相关的知识,希望对你有一定的参考价值。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多

吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?

设x,x=x/2-1

最简单使用循环

c#代码-->

            int x = 1;
            for(int day =1;day<10;day++)
            {
                x = 2 * (x + 1);
            }
            Console.WriteLine(x);        

使用递归,代码-->

        static int SumPeach(int x)
        {
            if (x==10)
            {
                return 1;
            }
            return 2 * (SumPeach(x + 1) + 1);
        }

递归次数太对,“变量,参数,返回值”等会压栈溢出,解决办法是用尾递归

尾递归c#代码-->

 private  static int SumPeach(int sum,int day)
        {
            if (day == 10)
            {
                return sum;
            }
            return SumPeach(2*(sum+1), day+1);
        }

 

以上是关于猴子吃桃的主要内容,如果未能解决你的问题,请参考以下文章

java经典算法题——猴子吃桃

C语言递归问题 猴子吃桃

猴子吃桃

C语言猴子吃桃问题递归法

用递归函数解决猴子吃桃桃问题。问题描述如下

C语言猴子吃桃递归法