剑指offer 斐波那契数列
求斐波那契数列的第n项的值
#include<bits/stdc++.h>
using namespace std;
int Fibonacci(int n)
{
int a[n+2];
if(n==0)
return 0;
int b= 3;
a[0]=0;
a[1]=1;
a[2]=1;
if(n<b&&n>0)
return a[n];
for(int i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
return a[n];
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",Fibonacci(n));
return 0;
}
思路:
首先我们要知道Fibonacci数列的递推公式为:
Fn=Fn-1+Fn-2
其中F1=F2=1。
我们将每一个数值存入数组中
我们想要求第n项的值的话,需要知道n-1和n-2的值就可以了