定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,......,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。
#include <vector>
#include <iostream>
using namespace std;
//---------------------------------[向量法实现]--------------------------
int fibo1(const int n)
{
vector<int>arr;
arr.push_back(0);
arr.push_back(1);
for (int i = 2; i <= n; i++)
{
arr.push_back(arr[i - 1] + arr[i - 2]);
}
return arr[n];
}
//---------------------------------[递归]-----------------------------------
int fibo2(int n)
{
if (n <= 1) return n;
else
return fibo2(n-1)+ fibo2(n-2);
}
//---------------------------------[正向思维]-----------------------------
int fibo3(int n)
{
if (n <= 1) return n;
else
{
int fn, fn1 = 1, fn2 = 0;
for (int i = 2; i <= n; i++)
{
fn = fn1 + fn2;
fn2 = fn1;
fn1 = fn;
}
return fn;
}
}
int main()
{
cout << fibo1(7) << endl;
cout << fibo2(7) << endl;
cout << fibo3(7) << endl;
getchar();
}