问答详情
源自:5-7 递归函数(一)

如何思考代码

怎么想到的return getWordNumber(n-1)+n;思考步骤是什么,想不到(n-1)+n这上面

提问者:qq_慕雪2531647 2020-02-29 10:58

个回答

  • weixin_慕斯3464934
    2020-03-18 19:13:45
    已采纳

    你把这个看成循环体来看,其实一个意思。第一天记住一个,第二天记住两个,第10天记住十个。那么第一天记住的量+第二天记住的量+....+第十天记住的量就是55.

    这里面调用函数用的是倒过来+的方法。

    这里get(n-1)+n.   这里的意思是今天记住的单词数比昨天多一个。所以昨天记住的单词数量为 n-1,

    但是要再加上今天记得单词数量 n,才代表单词记住的总量。get(n-1)代表就是在函数里在调用这个函数。

    第十天代入get(n-1)+n就是get(10-1)+10=get(9)+10,

    然后get(9)再代入get(n-1)+n就是  [get(9-1)+9]+10=[get(8)+9]+10,

    get(8)再代入get(n-1)+n就是【[get(8-1)+8]+9+10】

    直算到get(2-1)的时候

      if(n==1)

    return 1;

    如果n=1的时候返回 1,

    所以整个代码执行完应该是1+2+3+4+5+6+7+8+9+10=55返回去给sum。

    输出sum,运行结果55.

  • 曉鬆
    2020-02-29 12:43:27

    有10先把10加上,往后加9,加9就要想到8,相当于把小的那个数拆分成更小的数加自身,依次是这个思路