資料結構筆記 4 4 1 遞迴的應用 斐波那契數列

2021-10-08 07:01:54 字數 770 閱讀 4815

問題:

如果兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子。假設所有兔子都不死,那麼一對剛出生的兔子一年後可以繁殖多少對兔子?

分析:

根據題意列出下表

可以看出規律:前面兩項之和,構成後面一項。

(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 右邊只有階乘表示...