为什么啊 ,明明n没有增加 也没有减少 怎么就递归了 想不通。
如果n 不等于 10 不是在else中重新调用了 这个方法嘛 传的参数也加了啊
一开始,你N 传入的是1 ,不等于10 ,所欲执行了else 里面的方法,重新回调getPeachNumber(), 在这里,你的的参数 n+1 了,这次回调这个getPeachNumber() 这个方法,N 就是2 了
首先纠正一下,对于函数getpeachnumber()这里的n值是增加了的。
getpeachnumber(n)
你调用的时候是GetpeachNumber(N+1).这里是将n+1作为一个新的参数"n"传给了getpeachnumber().
第一次循环
getpeachnumber(n),主函数调用n=1.
第二次玄幻
getpeachnumber(n),递归传入getpeachnumber(n+1)。递归函数此时实际接收到的值为2
第三次玄幻
getpeachnumber(n)此时n=2,递归传入getpeachnumber(n+1)。递归函数此时实际接收到的值为3.
。。。。。
。。。。。
直到n+1=10. 返回1. n此时实际=9.
然后就是反向递归计算了。
第九天
第八天
第七天
直到最后一天。n=1时。
所以没毛病。
你的getPeachNumber参是n,但你后面每次递归调用时候,都是n+1,传进去都是加1 的值,每次都加1.看下面过程:
一直调用:
get(1)
get(2)
.
.
.
get(10)
这是最里面的层了,开始返回值1了,然后一层一层出来:
num =(1+1)*2 =4
num =( 4+1)*2=10
num=(10+1)*2=22
。。。
就这样再倒回去算,累加,这样明白了吧