//用递归方法和非递归方法编制计算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;
}
}