遞迴 迴圈實現Fibonacci數列

2021-07-31 04:19:43 字數 1218 閱讀 1818

程式實現的: 1 1 2 3 5 8 13 21 34 55……… 這麼乙個數列的功能(數列索引index = [1,2……n])

方法一: 利用函式遞迴實現fibonacci數列

#include 

#include

#define n 10

static int print_fibonacci( int

index );

int main(void)

return0;}

static int print_fibonacci( int

index )

結果如圖:

方法一: 利用迴圈實現fibonacci數列

#include 

#include

#define n 10

int main(void)

; int i = 1;

fibonacci[0]=1;

fibonacci[1]=1;

printf("index: ");

while ( i <= n )

printf("%d\t", i++ );

for( i = 2; i <= n; i++ )

fibonacci[ i ] = fibonacci[ i - 1 ]+fibonacci[ i - 2 ];

printf("\n");

printf("value: ");

for( i = 0; i < n; i++ )

printf( "%d\t", fibonacci[ i ] );

return

0;}

結果如圖:

Fibonacci的遞迴實現與迴圈實現的區分

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 遞迴呼叫實現fibonacci數列採用的自頂向下的演算法模式,利用 f n f n 1 f n 2 每次遞迴呼叫上一次的兩個fibonacci 函式。遞迴演算法對前n 2次所得數列中的資料不...

非遞迴實現fibonacci數列

下面用兩個方法實現fibonacci數列,乙個是遞迴的,乙個是非遞迴的,由於遞迴需要不斷的開闢新的棧,並釋放開闢的棧,因而更耗時,但是在理解上卻容易些。include iostream include time.h using namespace std intrecursive method in...

Fibonacci數列的遞迴與非遞迴實現

fibonacci 斐波那契 數列定義 1 遞迴實現 思想簡單,無需贅述,實現如下 遞迴方法複雜度o 2 n 計算到n 41已達到計算機的極限 int f int n int fibonacci1 int len 該方法存在很多重複計算,雖然是典型的遞迴,但效率很低,資源消耗大。經分析,改演算法時間...