C63-递推
原题链接:28705.NoteSC++2025-07-04 15:22:39
发布于:江苏
同递归一样,递推只是用数组存储了已经计算过的结果。
一、斐波那契数列的两种实现
#include <iostream>
using namespace std;
//递归//递推
long long f(int n){
//递归出口
if(1 == n || 2 == n ){
return 1;
}
//递归表达式
return f(n-1) + f(n-2);
}
long long a[100005] = {}; //空间 换取 时间
int main()
{
a[1] = 1, a[2] = 1; //递推的初始条件
for(int i=3; i<=100; i++){
a[i] = a[i-1] + a[i-2]; //递推表示
printf("fibonacii的第%d项是%lld\n", i, a[i]);
//printf("fibonacii的第%d项是%lld\n", i, f(i));
}
return 0;
}
二、上台阶
#include <iostream>
using namespace std;
long long a[1005] = {};
int main()
{
int n;
cin >> n;
a[1] = 1, a[2] = 2; //递推的初始条件
for(int i=3; i<=n; i++){
a[i] = a[i-1] + a[i-2]; //递推表示
}
cout << a[n];
return 0;
}
三、平面分割
#include <iostream>
using namespace std;
long long a[10005] = {};
int main()
{
int n;
cin >> n;
a[0] = 1; //递推的初始条件
for(int i=1; i<=n; i++){
a[i] = a[i-1] + i; //递推表示
}
cout << a[n]%10086;
return 0;
}
这里空空如也
有帮助,赞一个