慕瓜8047020
2019-10-27 21:29
num =( getPeachNumber(n+1)+1)*2; 怎么理解,为什么不是 num =( getPeachNumber(n+1))*2;
下面说法有错误,
num =( getPeachNumber(n+1))*2; 那么只能看成num =getPeachNumber(k)*2;并不是一个递归式//是递归,不满足题意
num =( getPeachNumber(n+1)+1)*2就是num =( getPeachNumber(k)+1)*2; 每次的k都在变化,都等于上一次的n值+1
应为num =( getPeachNumber(n+1))*2; 那么只能看成num =getPeachNumber(k)*2递归的结果不是下面的num =( getPeachNumber(n+1)+1)*2就是num =( getPeachNumber(k)+1)*2; 这显而易见吧
不论getPeachNumber() 这个你定义的函数()内是什么,它永远是下一次运算时你的(n)值,也就是说,你这里只要把n+1(定义量)当成n(运算量)来看,换个角度 你这里的函数等价于getPeachNumber(K),而K(运算量)值为n+1
ps:括号内的数,哪怕它是一个式子,实际在这里是赋值式,使你的下一个执行运算的n等于上一个的n+1。
这就是递归的意义没有理解,我在这里也想了一会儿,找了网课。自己多想想。如果是你后面的num =( getPeachNumber(n+1))*2; 那么只能看成num =getPeachNumber(k)*2;并不是一个递归式
num =( getPeachNumber(n+1)+1)*2就是num =( getPeachNumber(k)+1)*2; 每次的k都在变化,都等于上一次的n值+1
C语言入门
926207 学习 · 20797 问题
相似问题