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

2021-08-19 14:21:27 字數 516 閱讀 7128

在數學上,斐波納契數列以如下被以遞迴的方法定義: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語言教科書在講遞迴函式的時候總會拿斐波那契數列作為例子。但是這不意味著fibonacci的最合適的解法就是用遞迴來實現。因為遞迴呼叫過程中有很多重複計算,而且重複的數量隨著n的增加而劇增,實際上斐波那契遞迴時間複雜度是以n的指數級的方式遞增,如果要計算第100個斐波那契數就要等很長時間了。

#include

#include

int fib(int n)

return b;

}int main()

遞迴和非遞迴分別實現求第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...

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

遞迴和非遞迴分別實現求第n個斐波那契數。1,用非遞迴函式實現求第 n 個斐波那契數 define crt secure no warnings include include int fib int n int last2 1 第 i 2 項 int last1 1 第 i 1 項 int cur ...