为了账号安全,请及时绑定邮箱和手机立即绑定

1534怎么来的阿

第一天所剩桃子1534怎么算来的啊

正在回答

2 回答

我先把  getPeachNumbe 简写成 gN。这个n是天数的意思。


首先 它给了我们 int num = getPeachNumber(1);


gN(1);中n=1代入 (getPeachNumber(n+1)+1)*2;


就会有  (gN(1+1)+1)*2      这时gN(1+1)=gN(2)对吧?可是gN(2)等于多少我们又不知道,所以重新代入  (getPeachNumber(n+1)+1)*2;   就会出现  (gN(2+1)+1)*2 ,这时又出现了 gN(3) 我们还是不知道,就继续.....(以此类推) 到后面就有当 n==10时 return=1 就是说gN(10)=1 。这时g(10)等于多少我们知道,就代入gN(9)的式子里面得出桃子数,然后算上去。因为最先得出第九天的桃子所以程序先输出。


  n=1时 (gN(1+1)+1)*2   ——》里面gN(2)的值不知道


  n=2     (gN(2+1)+1)*2 ——》gN(3)的值不知道


    n=3  (gN(3+1)+1)*2 ——》gN(4)不知道


     n=4 (gN(4+1)+1)*2 ——》gN(5)不知道


    n=5  (gN(5+1)+1)*2 ——》gN(6)不知道


      n=6(gN(6+1)+1)*2 ——》gN(7)不知道


      n=7(gN(7+1)+1)*2 ——》gN(8)不知道


     n=8 (gN(8+1)+1)*2 ——》gN(9)不知道


      n=9(gN(9+1)+1)*2 ——》gN(10) 知道


          n==10  则 return 1;所以gN(10)=1.


       现在开始往回带,因为gN(10)=1代入gN(9)能登出gN(9)等于多少,接着就gN(8) 推上去.....


       n=9   (gN(9+1)+1)*2 ——》gN(9)  = (1+1)*2=4   因为已经得出来了这里就先输出第九天的桃子数了。


      n=8    (gN(8+1)+1)*2 ——》gN(8)  = (4+1)*2=10

      

                                      。。。。推下出。

     n=1   (gN(1+1)+1)*2 ——》gN(1)  = (766+1)*2=1534 

   希望能帮到你;)


1 回复 有任何疑惑可以回复我~
#1

刘一_53707959

谢谢 懂了
2016-11-20 回复 有任何疑惑可以回复我~

#include <stdio.h>

int getPeachNumber( int n)// 求桃子个数函数

{

    int num;    //定义所剩桃子数

    if(n==10)

    {

        return 1;  

    } 

    else

    {

        num =(getPeachNumber(n+1)+1)*2;   //这里应该用递归

        printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数

    }

    return num;

}

int main()

{

    int num = getPeachNumber(1);//调用函数, 求第一天桃子个数

    printf("猴子第一天摘了:%d个桃子。\n", num);

    return 0;

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

1534怎么来的阿

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信