//用遞歸方法和非遞歸方法編制計算Fibonacci數列的程序。
//Fibonacci數列的計算公式是:
// fib(n)=1, (n=1,2)
// fib(n)=fib(n-1)+fib(n-2), (n>=3)
//即數列的前兩個數爲1,從第三個數開始每個數的值都是其前兩個數之和。
//用遞歸方法
#include<iostream.h>
long fib(int n);
void main(void)
{
cout<<"輸出fibnacci數列(前10個數):/n";
for(int k=1;k<=10;k++)
cout<<fib(k)<<" ";
cout<<endl;
}
long fib(int n)
{
if(n==1||n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
//非遞歸實現.cpp
#include<iostream.h>
long fib(int n);
void main(void)
{
cout<<"輸出fibnacci數列(前10個數):/n";
for(int k=1;k<=10;k++)
cout<<fib(k)<<" ";
cout<<endl;
}
long fib(int n)
{
if(n==1||n==2)
return 1;
else{
long f1=1,f2=1;
for(int k=3;k<=n;k++){
long temp1=f1;
f1=f2;
f2=temp1+f2;
}
return f2;
}
}