qq_慕雪2531647
2020-02-29 10:58
怎么想到的return getWordNumber(n-1)+n;思考步骤是什么,想不到(n-1)+n这上面
你把这个看成循环体来看,其实一个意思。第一天记住一个,第二天记住两个,第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.
有10先把10加上,往后加9,加9就要想到8,相当于把小的那个数拆分成更小的数加自身,依次是这个思路
C语言入门
926028 学习 · 20793 问题
相似问题