陌天
2015-01-31 16:57
num = (getPeachNumber(n+1)+1)*2;这个语句还是不理解什么意思
这个是个赋值语句,会计算等号右侧的值,并将其赋给num。
而等号右侧括号中的第一项就是个函数调用,再次调用了这个函数getPeachNumber(n+1),其中有可能再次调用这个函数...直到某一次调用时传入的参数n==10,满足了递归结束条件,于是返回了1,而它的调用者(应该也是在一次getPeachNumber调用中)则完成了等号右侧的计算,并将计算出来的值赋给了它的num,最后将其值返回给了它的调用者——也许还是在前一个getPeachNumber中......最终main函数中的num得到了计算出来的值。
这就是递归调用。
getPeachNumber(2)=getPeachNumber(1)/2 - 1
推出
getPeachNumber(1)=(getPeachNumber(2)+1)*2
所以
num = (getPeachNumber(n+1)+1)*2
C语言入门
926212 学习 · 20797 问题
相似问题