在C++中用非递归的函数调用形式求斐波那契数列的第n项
时间: 2024-12-02 09:16:25 浏览: 15
编写函数f,功能是用递归的方法求斐波那契数列的第n项
在C++中,非递归地计算斐波那契数列的第n项可以使用循环结构和动态规划的思想。你可以创建一个数组来存储已经计算过的斐波那契数值,避免了反复计算已知项。以下是一个简单的示例:
```cpp
#include <iostream>
int fibonacci(int n) {
if (n <= 0) {
std::cout << "错误:n必须大于0" << std::endl;
return -1; // 或者抛出异常
}
// 创建一个大小为n+1的数组,用于存储斐波那契序列值
int fib[1 + n];
fib[0] = 0;
fib[1] = 1;
// 使用循环计算并填充数组
for (int i = 2; i <= n; ++i) {
fib[i] = fib[i - 1] + fib[i - 2];
}
// 返回第n项
return fib[n];
}
int main() {
int n;
std::cout << "请输入斐波那契数列的项数(n): ";
std::cin >> n;
int result = fibonacci(n);
if (result != -1) {
std::cout << "斐波那契数列的第" << n << "项是: " << result << std::endl;
}
return 0;
}
```
阅读全文