请教大佬,,,

来源:5-8 递归函数(二)

慕瓜8047020

2019-10-27 21:29

 num =( getPeachNumber(n+1)+1)*2; 怎么理解,为什么不是 num =( getPeachNumber(n+1))*2; 

写回答 关注

2回答

  • 琪云
    2019-10-28 20:21:21

    下面说法有错误,

    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;     这显而易见吧


  • 琪云
    2019-10-28 20:12:54

    不论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语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题