c++ - 递归 C++ 函数打印出斐波那契树的元素
问题描述
到目前为止,我已经能够使用递归来打印出斐波那契数列。例如,序列中的前 6 项(包括第 0 项)为:
6
13 8 5 3 2 1 1
但我不确定我应该如何使用它来打印出整个斐波那契树。当程序输入为 6 时,它应该打印:
6
13 8 5 3 2 1 1 1 2 1 1 3 2 1 1 1 5 3 2 1 1 1 2 1 1
到目前为止我的代码是:
#include <iostream>
#include <math.h>
#include <vector>
#include <string>
using namespace std;
std::vector<int> list;
int fib(int num);
int main() {
int input, depth = 0, leafs = 0, size = 0;
cin >> input;
int temp = input;
while (temp >= 0) {
cout << fib(temp) << " ";
temp--;
}
return 0;
}
int fib(int n) {
if (n <= 1) {
return 1;
} else {
return fib(n-1) + fib(n-2);
}
}
解决方案
如果要打印所有内容,还需要使用所有功能来打印所有内容:
int fib(int n) {
if (n <= 1) {
std::cout << 1 << " ";
return 1;
} else {
int f1 = fib(n-1);
int f2 = fib(n-2);
std::cout << f1 + f2 << " ";
return f1 + f2;
}
}
推荐阅读
- python-3.x - IfxPy 安装失败
- html - 对齐 div 框 CSS
- flutter - 如何更改以编程方式创建的动画位置小部件的状态?
- c# - 我的 C#/mySql 产品消费查询花费的时间比代码中跟踪的时间长得多
- spring-boot - 记录 SpringBoot 应用对外部服务的请求
- javascript - Vue 应用程序中 Canvas 中的 Three.js 动画无法正确调整大小
- mongodb - 如何将所有 mongo 文档中的值从字符串更新为数组?
- amazon-web-services - 没有 WWW 的域名在 AWS 上不起作用
- python - Python pandas数据框:数据框到另一个数据框
- typescript - TypeScript:使函数参数有条件地可选