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

2021-09-28 11:40:43 字數 558 閱讀 3133

斐波那契數列指的是這樣乙個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368
從第三項開始,它就是後面每個數的值是前兩個數的和

思路:如果設f(n)為該數列的第n項(n∈n*),那麼這句話可以寫成如下形式::f(n)=f(n-1)+f(n-2)

在輸入的數n很大的時候,遞迴的方法會花費很長的時間,這是因為計算機會重複計算同乙個值很多遍,所以用迭代的方法比較好

以下是**:遞迴的版本在fib1函式,非遞迴在fib2函式

#include #include int fib1(int n)

//遞迴呼叫自己

return fib1(n - 2) + fib1(n - 1);

}int fib2(int n)

for (int i = 3; i <= n;i++)

return c;

}int main()

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

在數學上,斐波納契數列以如下被以遞迴的方法定義 f 0 0,f 1 1,f n f n 1 f n 2 n 2,n n include include int fib int n else int main 一直以來很多c語言教科書在講遞迴函式的時候總會拿斐波那契數列作為例子。但是這不意味著fibo...

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

斐波那契數列的排列是 1,1,2,3,5,8,13,21,34,55,89,144 在c語言中,可以使用遞迴和非遞迴的方法實現求第n個斐波那契數。1 遞迴方法 include includeint fib int n int main 可以看出遞迴方法十分簡潔明瞭,但該問題使用遞迴存在缺陷,如果n值...

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

問題描述 使用遞迴和非遞迴的方法分別實現求第n個斐波那契數,那麼什麼是斐波那契數。斐波那契數列指的是這樣乙個數列 1 1 2 3 5 8 13 21,後面的每乙個數是前面兩個數的和。解題思路一 遞迴實現 參考 define crt secure no warnings include include...