斐波那契数列F(n)是这样定义的:F(0)等于1,F(1)等于1,而
F(i) = F(i-1) + F(i-2)
其中,i = 0,1,2,3,...。换言之每个数字都是前面两个数字之和,前几个斐波那契数字是1,1,2,3,5,8,...。
下面是递归实现的斐波那契数列:
#include<iostream>
#include<cstdlib>
using namespace std;
long Fibonacci(int n)
{
if (n==0 || n ==1)
return 1;
else
{
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
void main()
{
cout << "请输入斐波那契数列的项数:\n";
int m;
cin >> m;
if(m < 1)
{
cout << "Illegal argument! ";
exit(1);
}
cout << "斐波那契数列如下:\n";
for(int i=0;i<m;i++)
{
cout << Fibonacci(i) << " " ;
//每输出10项换行
if(i%10==0 && i!=0)
cout << "\n";
}
}
下面是其迭代版本实现:
long Fibonacci2 (int n) { long x = 0, y = 1; for (int j = 1; j < n; j++) { y = x + y; x = y - x; } return y; }