1.斐波那契数列 兔子生小兔子 继续生兔子 初始第0个月有一只兔子

(1)递归方法
#include <iostream>
using std::cin;
using std::cout;
long long f(long long n) {
if (n < 2) {
return 1;
}
else {
return f(n - 1) + f(n - 2);
}
}
int main() {
long long month, total;
cout << "请输入月份数:";
cin >> month;
total = f(month);
cout << "兔子总数:" << total;
return 0;
}
(2)递推方法
#include <iostream>
using std::cin;
using std::cout;
int main() {
long long month;
long long f[1000];
f[0] = 1;
f[1] = 1;
cout << "请输入月份数:";
cin >> month;
for (int i = 2; i <= month; i++) {
f[i] = f[i - 1] + f[i - 2];
}
cout << "兔子总数:" << f

本文介绍了如何使用C++实现递归和递推方法来解决斐波那契数列和求解三角形最大路径问题。针对三角形路径问题,博主指出原始递归解法的时间复杂度为O(2^n),存在大量重复计算,提出了优化方案——使用数组记录已计算结果,将时间复杂度优化到O(n^2)。博客内容来源于个人学习笔记,参考了B站UP主木子喵neko的视频讲解。
最低0.47元/天 解锁文章

3249

被折叠的 条评论
为什么被折叠?



