【問題描述】:使用遞迴和非遞迴的方法分別實現求第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 列印...