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

2021-08-19 20:46:35 字數 517 閱讀 4842

斐波那契數列的排列是:1,1,2,3,5,8,13,21,34,55,89,144……

在c語言中,可以使用遞迴和非遞迴的方法實現求第n個斐波那契數。

(1)遞迴方法

#include#includeint fib(int n)

int main()

可以看出遞迴方法十分簡潔明瞭,但該問題使用遞迴存在缺陷,如果n值較大,計算效率相當低。親測在計算第45個斐波那契數時,用時16秒,所以在解決該問題時更適合採用非遞迴方法。

(2)非遞迴方法

#include#includeint fib(int n)

} return c;

}int main()

同樣地,採用非遞迴方法求第45個斐波那契數也就是一瞬間的事情。所以使用遞迴方法時需謹慎。

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

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 ...