首先這是乙個面試題,題目是這樣的
有乙個數列是1,1,2,3,5,8…請程式設計寫出第50個數字是多少
這麼簡單?不就是斐波那契數列嗎,看我的
#include
#include
double
fun(
double n)
intmain()
遞迴用起來,看著是很簡單,但是效率不敢恭維
12586269025
over
這是計算結果,用時442s
遞迴深似海,慎用
還是簡單第累加求斐波那契吧
#include
#define num 50
intmain()
printf
("arr[%d]:%.lf\n"
, num -
1, arr[num -1]
);//for (int i = 0; i < 50; i++)
// printf("arr[%d]:%.lf\n", i, arr[i]);
return0;
}
計算結果幾乎秒出
arr[49]:12586269025
遞迴求斐波那契額數列
一 斐波那契數列 由於斐波納挈數列是以兔子的繁殖引入的,因此也叫 兔子數列 它指的是這樣乙個數列 0,1,1,2,3,5,8,13.從這組數可以很明顯看出這樣乙個規律 從第三個數開始,後邊乙個數一定是在其之前兩個數的和。在數學上,斐波納挈數列可以以這樣的公式表示 f 0 0 f 1 1 f n f ...
求斐波那契數列
一 用陣列求取斐波那契數列第n項的數值 非遞迴 斐波那契數列求取思想 第n項 第n 1項 第n 2項 function getvalue n var j 0 while j n 1 return arr j else alert getvalue 8 求第八項的值 二 使用遞迴求取第n項的值 fun...
用遞迴求斐波那契數
斐波那契數是第乙個數和第二個數都為1,從第三個數開始,後面的是是前面相鄰兩個數的和。定義的函式如下所示 int fib int m if語句為了確定第一位和第二位都為1,完整的 如下所示 include include int fib int m int main printf n printf n...