问答详情
源自:5-8 递归函数(二)

有几个问题不太懂。。。。求老师解答

 num = (getPeachNumber(n+1)+1)*2;这个语句还是不理解什么意思

提问者:陌天 2015-01-31 16:57

个回答

  • onemoo
    2015-01-31 22:03:03
    已采纳

    这个是个赋值语句,会计算等号右侧的值,并将其赋给num。

    而等号右侧括号中的第一项就是个函数调用,再次调用了这个函数getPeachNumber(n+1),其中有可能再次调用这个函数...直到某一次调用时传入的参数n==10,满足了递归结束条件,于是返回了1,而它的调用者(应该也是在一次getPeachNumber调用中)则完成了等号右侧的计算,并将计算出来的值赋给了它的num,最后将其值返回给了它的调用者——也许还是在前一个getPeachNumber中......最终main函数中的num得到了计算出来的值。

    这就是递归调用。

  • linkin55
    2015-04-10 19:03:52

    getPeachNumber(2)=getPeachNumber(1)/2 - 1

    推出

    getPeachNumber(1)=(getPeachNumber(2)+1)*2

    所以

    num = (getPeachNumber(n+1)+1)*2