作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
生成斐波那契数列的两种通用方法是:
我遇到了另一种解决方案
#include <iostream>
using namespace std;
void fibo() {
static int y = 0;
static int x = 1;
cout << y << endl;
y = x + y;
x = y - x;
}
int main() {
for (int i = 1; i <= 1; i++) {
fibo();
}
return 0;
}
此解决方案在初始运行时看起来运行良好,但与传统的递归方法相比,它是否存在任何明显的缺点?
我确信静态变量会增加空间复杂度,但至少我们没有使用递归构建函数表堆栈,对吗?
最佳答案
我可以立即看到的缺点:
我赞成一种将状态保存在一个对象中的方法,您可以请求该对象的下一个值 - 基本上是一个迭代器。 (我一直不确定斐波那契数列映射到 C++ 迭代器的难易程度;尽管它在 C# 和 Java IEnumerable<T>
和 Iterable<T>
上运行良好。)
关于c++ - 这是生成斐波那契数列的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6026519/
我是一名优秀的程序员,十分优秀!