问答详情
源自:5-7 递归函数(一)

脑子转不过来,不懂递归函数怎么运行?

没有循环语句,直接输进去10,他只是10+9了,之前的呢,1到8呢,结果对了,但是不懂啊,求大神解释

提问者:慕斯7407225 2016-12-07 20:08

个回答

  • _雨寂伞下又一个晴天_0
    2016-12-07 22:02:53
    已采纳

    if条件判断就相当于是在循环了,word(n-1)+n函数,n初值为10,一共记到第10天,当if(n==1)时,return 1,返回1,第一天记得一个,所以就可以一直累加。

    9+10

         8+(9+10)

             7+(8+9+10)

                6+(7+8+9+10)

                    5+(6+7+8+9+10)

                          4+(5+6+7+8+9+10)

                              3+(4+5+6+7+8+9+10)

                                   2+(3+4+5+6+7+8+9+10)

                                       1+(2+3+4+5+6+7+8+9+10)   // n==1时,return 1 


  • qq_慕粉60857
    2016-12-20 17:33:44

    我想明白了,我告诉你们

    当getWordNumber(10)时,执行else     return getWordNumber(n-1)+n(也就是判断语句第二步),

    具体执行过程如下:第一步getWordNumber(10-1)+10=getWordNumber(9)+10,第二步:getWordNumber(9-1)+9(前面的就是判断之后再次执行else     return getWordNumber(n-1)+n)+10=getWordNumber(8)+9+10,第三步就是以此类推,我是看了好多评论也没理解明白,自己捉摸出来的,能容易理解!