求解惑啊被困擾好幾天了!
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會1個單詞
? ? }
? ? else{
? ? ? ? return getWordNumber(n-1)+n;? ? ? ?//到第天會的單詞數(shù)量
? ? }
}
int main()
{
? ? int num = getWordNumber(10);? ? ?//獲取會了的單詞數(shù)量
? ? printf("小明第10天記了:%d個單詞。\n", num);
? ? return 0;
}
每一次調(diào)用n的值分別變成了多少啊,求舉幾個列子
比如 n=10 的時候
(10-1)+10=19
那么第二次循環(huán)n的值分別為多少啊,我只能看懂第一個
2018-11-21
第二個的n值就是當(dāng)前函數(shù)里面剛開始時候括號里面的值,
2018-11-21
我理解的就是,,,一直循環(huán)使用自身,但是值不一樣,第一次的n是10 第二次的n就相當(dāng)于上個的n-1,也就是9,第三次的n就是9-1,也就是8,第四次的n就是8-1,也就是7~~~~~~~一直到最后一次的時候的n的值是1,就直接返回1,然后在開始往回走,慢慢的每個n值相加,最后就是相加的值,emmmmmm我不會堆棧什么的,我自己理解的,就是嗯,一層一層套,慢慢的就套出了答案。
2018-11-20
首先你要理解什么是遞歸。
遞歸屬于逆向思維,我們平常的思維方式屬于遞推,也就是從1到100。
如何知道到第N天小明學(xué)會了多少個單詞?很簡單啊,昨天學(xué)會的加上今天的天數(shù)就是了嘛。
那昨天學(xué)會了多少?很簡單啊,前天學(xué)會多少加上昨天的天數(shù)不就知道了嗎?
那前天學(xué)會了多少怎么知道呢?同上。
我們只需關(guān)心本次的結(jié)果即可。