递推算法,以初始值为基础,用相同的运算规律,逐次重复运算,直至运算结束。这种从“起点”重复相同的方法直至到达一定“边界”,犹如单向运动,用循环可以实现。递推的本质是按照规律逐次推出(计算)下一步的结果。
比如,斐波那契数列:F(1)=F(2)=1;F(n)=F(n-1)+F(n-2),求出此数列第n项(n>=3)的数值。使用递推算法实现如下:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int f0 = 1, f1 = 1, f2;
int n;
cin >> n;
for(int i = 3; i <= n; ++i)
{
f2 = f0 + f1;
f0 = f1;
f1 = f2;
}
printf("%d\n", f2);
return 0;
}