fibonacci數列C 語言多種實現

2021-07-09 02:09:46 字數 2313 閱讀 6085

作者****:

[email protected]

斐波納契數列

(fibonacci sequence),又稱

**分割

數列,指的是這樣乙個數列:

1、1、2、3、5、8、13、21、... ...

在數學上,斐波納契數列以如下被以遞迴的方法定義:f(0)=1, f(1)=1, f(n)=f(n-1)+f(n-2)(n>=2,n∈n*).

[cpp]view plain

copy

print?

"font-size:16px;"

>#include 

#include 

#include 

#include 

#include 

using

namespace

std;  

/** fibonacci的遞迴函式解法

* 優點:**簡單,易於理解

* 缺點:fib引數引數比較大時,運算量很大

*/unsigned long

long

fib_recursive( unsigned 

intfib )  

/** fibonacci的陣列解法

* 優點:**比較簡單,也比較容易理解

* 缺點:fib多大就new多大的記憶體

*/unsigned long

long

fib_array( unsigned 

intfib )  

result = parray[loop-1];  

delete

parray;  

}  else

if( 2 == fib ) 

return

2;  

else

if( 1 == fib ) 

return

1;  

return

result;  

}  /*

* vector實現

*/unsigned long

long

fib_vector( unsigned 

intfib )  

return

resultvec[i-1];  

}  else

if( 2 == fib ) 

return

2;  

else

if( 1 == fib ) 

return

1;  

return

1;  

}  /*

* queue實現

*/unsigned long

long

fib_queue( unsigned 

intfib )  

return

resultqueue.back();  

}  else

if( 2 == fib ) 

return

2;  

else

if( 1 == fib ) 

return

1;  

return

1;  

}  /*

* 迭代實現

*/unsigned long

long

fib_iteration( unsigned 

intfib )  

return

a3;  

}  else

if( 2 == fib ) 

return

2;  

else

if( 1 == fib ) 

return

1;  

return

1;  

}  /*

* 公式實現 

* 缺點:有誤差 

*/unsigned long

long

fib_formula( unsigned 

intfib )  

return

1;  

}  int

main(

intargc, 

char

**argv)  

#ifdef _win32

system("pause"

);  

#endif

return

0;  }

vs2012執行結果:

Fibonacci數列C語言

fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入包含乙個整數n。輸出一行,包含乙個整數,表示fn除以10007的餘數。在本題中,答案是要求fn除以10007的餘數,因此我們只要能算出這個...

C語言求Fibonacci數列

方法一 普通法 include include unsigned long fibonacci unsigned n 列印fibonacci intmain void printf athank you for you using.return exit success unsigned long ...

fibonacci數列C 語言多種實現

作者 vision chen yeah.net 斐波納契數列 fibonacci sequence 又稱 分割 數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 在數學上,斐波納契數列以如下被以遞迴的方法定義 f 0 1,f 1 1,f n f n 1 f n 2 n 2,n n inc...