题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
n<=39
解法1:递推法:
int Fibonacci(int n)
{
if(n<0)
return 0;
if(n==0)
return 0;
else if(n==1)
return 1;
int s=0;
int f1=0;
int f2=1;
while(n>=2){
s=f1+f2;
f1=f2;
f2=s;
n--;
}
return s;
}
解法2:动态规划法
int Fibonacci(int n)
{
if(n<0)
return 0;
int *dp=new int[n+1];
dp[0]=0;
dp[1]=1;
for(int i=2;
i<=n;
i++)
dp[i]=dp[i-1]+dp[i-2];
return dp[n];
delete[]dp;
}
【#|【剑指offer刷题】07--递归与动态规划--斐波那切数列】
推荐阅读
- #|Spring使用JDBC访问MySQL数据库
- #|动手学深度学习(3.14 正向传播、反向传播和计算图)
- #|蓝桥杯31天冲刺打卡题解(Day6)
- #|蓝桥杯31天冲刺打卡题解(Day2)
- #|蓝桥杯31天冲刺打卡题解(Day3)
- #|蓝桥杯31天冲刺打卡题解(Day1)
- #|图像去噪论文综述(更新中...)
- #|浙江大学-机器学习-ppt截图
- #|机器学习_吴恩达-总