Fibonacci数列动态规划c语言
时间: 2023-07-08 20:16:05 浏览: 139
Fibonacci数列是一个非常经典的动态规划问题,其定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2)。即,第n个Fibonacci数等于第n-1个Fibonacci数和第n-2个Fibonacci数之和。
下面是使用动态规划算法求解Fibonacci数列的C语言代码:
```c
#include <stdio.h>
int dp[100]; //记录Fibonacci数列中第i个数的值
int Fibonacci(int n)
{
int i;
//初始化dp数组
dp[0] = 0;
dp[1] = 1;
//动态规划求解
for (i = 2; i <= n; i++)
{
dp[i] = dp[i-1] + dp[i-2];
}
//返回第n个Fibonacci数
return dp[n];
}
int main()
{
int n, f;
//读入n
printf("请输入n:");
scanf("%d", &n);
//计算第n个Fibonacci数
f = Fibonacci(n);
//输出结果
printf("第%d个Fibonacci数为:%d\n", n, f);
return 0;
}
```
其中,dp[i]表示Fibonacci数列中第i个数的值。在动态规划求解时,从第3个数开始遍历,dp[i]等于dp[i-1]和dp[i-2]的和。最终,dp[n]即为第n个Fibonacci数的值。
阅读全文