問題:
如果兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子。假設所有兔子都不死,那麼一對剛出生的兔子一年後可以繁殖多少對兔子?
分析:
根據題意列出下表
可以看出規律:前面兩項之和,構成後面一項。
(1)迭代法
#include
#define n 13
intmain
(void);
for(i =
2; i < n; i++
) a[i]
= a[i -1]
+ a[i -2]
;printf
("1年後有%d對兔子\n"
,a[n-1]
);return0;
}
執行結果:
(2)遞迴法
#include
intfbi
(int i)
intmain
(void
)
執行結果: 資料結構學習筆記 遞迴
遞迴 乙個函式自己直接或間接呼叫自己。函式的呼叫 當在乙個函式的執行期間呼叫另乙個函式時,在執行被調函式之前,系統需要完成三間事 1 將所有的實際引數 返回位址 當被調函式完成後,接下來要執行的語句的位址 等資訊傳遞給被呼叫函式儲存。2 為被調函式的區域性變數 也包括形參 分配儲存空間。3 將控制轉...
學習筆記 資料結構 遞迴
1 遞迴定義 方法或函式呼叫自身的方式成為遞迴呼叫 去的過程叫 遞 回來的過程叫 歸 2 遞迴需要滿足的條件 1 乙個問題可以分解為資料規模更小的問題。比如階乘,只需要計算本身的值和前乙個數的乘積 2 分解後的子問題,除資料規模不一樣,求解思路完全相同。3 存在遞迴終止條件。一般用 if retur...
資料 結構 遞迴
遞迴不一定非要像斐波拉契數列一樣在return中呼叫函式 遞迴的結束條件就是初始條件值 通常的方法將遞迴呼叫放在if語句中 n!通過遞迴實現 常用方法還是通過while實現 def jiecheng n if n 0 return 1 else sum n jiecheng n 1 右邊只有階乘表示...