我不懂啊,为什么return getWordNumber(n-1)+n;
我不懂啊,为什么return getWordNumber(n-1)+n;什么意思,看不懂
我不懂啊,为什么return getWordNumber(n-1)+n;什么意思,看不懂
2016-01-31
比如n=10,开始执行getWordNumber(10)。。。 return getWordNumber(n-1)+n为return getWordNumber(9)+10,但这里不知道其中的getWordNumber(9)是多少,于是开始执行getWordNumber(9),同理,在getWordNumber(9)中会出现return getWordNumber(8)+9,因为不知道getWordNumber(8)是多少,所以在执行getWordNumber(8)。以此类推。出现getWordNumber(1)时满足if条件得出getWordNumber(1)的值,再把getWordNumber(1)的值套入getWordNumber(2)中得出getWordNumber(2)的值,以此类推。最终返回10天的总词数。
ps:return getWordNumber(n-1)+n............中的(n-1)是为了递归调用前一天的值,后面的n是当天学习的单词量。
数学原理
当n = 10时
sum = getWordNumber(9)+10
getWordNumber(9) = getWordNumber(8)+9
getWordNumber(8) = getWordNumber(7) + 8
getWordNumber(7) = getWordNumber(6) + 7
getWordNumber(6) = getWordNumber(5) + 6
getWordNumber(5) = getWordNumber(4) + 6
getWordNumber(4) = getWordNumber(3) + 6
getWordNumber(3) = getWordNumber(2) + 3
getWordNumber(2) = getWordNumber(1) + 2
getWordNumber(1) = 1
一个一个往里面带入
得到结果
sum = 1+2+3+4+5+6+7+8+9+10
举报