C語言 遞迴和非遞迴分別實現求第n個斐波那契數

2021-09-11 02:48:14 字數 814 閱讀 7188

問題描述】:使用遞迴和非遞迴的方法分別實現求第n個斐波那契數,那麼什麼是斐波那契數。斐波那契數列指的是這樣乙個數列:1、1、2、3、5、8、13、21,後面的每乙個數是前面兩個數的和。

解題思路一】:遞迴實現

參考**】:

#define  _crt_secure_no_warnings

#include

#include

intfabonacci

(int n)

intmain()

解題思路二】:迭代(非遞迴)

當我們用遞迴實現了求第n個斐波那契數時,我們是否考慮到當n很大的時候這段**的執行效率很低。例如,在遞迴計算fibonacci(10)時,fibonacci(3)的值被重複計算了21次;在遞迴計算fibonacci(30)時,fibonacci(3)的值被重複計算了317811次!這個額外的花銷是很大的,所以我們求乙個很大的數時,應當考慮用迭代的方法。

#define  _crt_secure_no_warnings

#include

#include

intfabonacci

(int n)

return f3;

}int

main()

C語言 遞迴和非遞迴分別實現求第n個斐波那契數

介紹斐波那契數列,斐波那契數列的排列是 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第三項開始,每一項都等於前兩項之和。遞迴法 注意 使用遞迴的方式雖然很好理解但是會出現n很大使得 效率變低的問題,define crt secure no warnings 1 inclu...

C語言 遞迴和非遞迴分別實現求第n個斐波那契數

1.斐波那契數是什麼 斐波那契數列,又稱 分割數列,指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞迴的方法定義 f 0 0,f 1 1,f n f n 1 f n 2 n 2,n n 特別指出 第0項是0,第1項是第乙個1。2.1.用非遞迴方法 ...

遞迴和非遞迴分別實現strlen

遞迴和非遞迴分別實現strlen 來計算字串長度。方法一 遞迴 1 鍵入要求的字串 2 判斷字串是否為空,為空返回0 不為空返回strlen a 1 1 a 1表示字串後移一位 1表示字串長度 1 3 列印結果 方法二 1 鍵入要求的字串 2 判空,空則返回0 不為空則迴圈,count自增 3 列印...