【实例一】
斐波那契数列 采用自底向上(填表)的方式
备忘录式详见:
https://blog.csdn.net/qq_61993592/article/details/121888912?spm=1001.2014.3001.5501
【问题描述】
输入:n
输出:斐波那契数列对应的F(n)的值
【问题分析】
根据斐波那契数列的性质可得出以下递推式
【算法描述】
初始化fib[0]=0;fib[1]=1,fib[2]=2
输入:n
输出:斐波那契数列对应的F(n)的值
当n<=2时,return 1;
当n>2时;
将计算所得的值放入数组fib[]中;
循环计算每一个值fib[i] = fib[i - 1] + fib[i - 2];
return fib[n];
【算法实现】
#include<stdio.h>
int fib[100] = { 0, 1, 1}; //初始化表格元素
int F(int n)
{
if (n < 2) return n;
else
{
for (int i = 2; i <= n ; i++)
{
fib[i] = fib[i - 1] + fib[i - 2]; //计算填表
}
return fib[n];
}
}
int main()
{
int n;
scanf("%d", &n);
int result = F(n);
printf("%d", result);
}
【运行结果】