zoukankan      html  css  js  c++  java
  • 猴子吃桃

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

    吃了一个。以后每天都吃前一天剩下的一半再加一个。到第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);
            }
  • 相关阅读:
    P3332 [ZJOI2013]K大数查询
    树上最短路---------------树链剖分,优化建边。
    BZOJ_4386
    2016_1_13(3)
    2016_1_13(2)
    2016_1_13
    BZOJ_1698
    BZOJ_4152
    BZOJ_3110
    BZOJ_2141
  • 原文地址:https://www.cnblogs.com/ouyangping/p/8546286.html
Copyright © 2011-2022 走看看