1. 程式人生 > >猴子吃桃

猴子吃桃

div bsp lin line 一個 OS rdquo 參數 color

猴子第一天摘下若幹個桃子,當即吃了一半,還不過癮就多吃了一個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多

吃了一個。以後每天都吃前一天剩下的一半再加一個。到第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); }

猴子吃桃