程序:
/*
* Copyright(c)2013,
*All right reserved.
*文件名称:test4-3.cpp
*作 者:徐驰
*完成日期:2013-12-04
*版 本 号:v1.0
*
*输入描述:第n个数
*问题描述:fibonacci序列
*程序输出:数值
*问题分析:略
*算法分析:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)
*/
#include<iostream>
using namespace std;
long fact(int n);
void main()
{
int n;
while(1)
{
cout<<"输入第几个数字(0退出):";
cin>>n;
if(n<=0)break;
else
{
cout<<fact(n)<<endl;
}
}
cout<<"thank you~~~"<<endl;
}
long fact(int n)
{
if(n==1)return 0;
else if(n==2)return 1;
else return fact(n-1)+fact(n-2);
}
/*#include<iostream>
using namespace std;
long fact(int n);
void main()
{
int n;
while(1)
{
cout<<"输入第几个数字(0退出):";
cin>>n;
if(n<=0)break;
else
{
cout<<fact(n)<<endl;
}
}
cout<<"thank you~~~"<<endl;
}
long fact(int n)
{
long f1=0,f2=1,f;
int i;
if(n==1)return 0;
else if(n==2)return 1;
else
{
for(i=3;i<=n;i++)
{
f=f1+f2;
f1=f2;
f2=f;
}
return f;
}
}*/
结果:
感觉递归法执行速度很慢啊。。。。