【发布时间】:2011-05-17 05:17:24
【问题描述】:
生成斐波那契数列的两种通用方法是:
- traditional 方法,即在函数内部运行 for 循环。
- 递归
我遇到了另一个解决方案
#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;
}
此解决方案在最初的运行中看起来运行良好,但与传统和递归方法相比,这是否有任何明显的缺点?
我确信静态变量会增加空间复杂度,但至少我们没有使用递归构建函数表堆栈,对吗?
【问题讨论】:
-
如果要重新启动序列会怎样?仅当您缓存结果或只需要序列一次时,这才真正有用。