大盗无风不起浪
2015-01-20 10:09
getWordNumber(n - 1) + n - 1,这段代码没理解
这是返还给 getWordNumber(1)的值,就是return 1 将1返还到getWordNumber(1)中。
例:
abc(5)=abc(4)+n
abc(4)=abc(3)+n
abc(3)=abc(2)+n
abc(2)=abc(1)+n
abc(1)=1
然后返换,先计算最后一个
abc(1)等于1
倒数第二行
abc(2)=abc(1)+n 等于 abc(2)=1+ 2 =3
倒数第三行
abc(3)=abc(2)+n 等于 abc(3)= 3+3 =6 第一个3是abc(2)的值 , 第二个3是n的值,就是abc(n-1)中n的值,abc(3)=abc(2)+3
倒数第四行
abc(4)=abc(3)
1+1+2+3+4+5+6+7+8+9
return getWordNumber(n-1)+n-1
表示getWordNumber(n)比getWordNumber(n-1)多了个+n-1
即
getWordNumber(n-1) - getWordNumber(n-1) = n-1
getWordNumber(n-1)是递归方法的运用,递归调用函数getWordNumber(),并每次计算前一天的单词量,把过程写成数学过程就形成了:(((((1)+2)+3)+...+(n-2))+n-1。即从最后一天的前一天(n-1)开始记录,一直到第一天为止。
C语言入门
926212 学习 · 20797 问题
相似问题