斐波那契数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N)。请用c++编程计算斐波那契数列的指定项。
时间: 2024-09-30 16:11:54 浏览: 59
已知Fibonacci数列:1,1,2,3,5,8,13,……。观察数列,可发现这样的规则:从第3项开始,每一项都是其前面两项之和。
斐波那契数列是一个经典的动态规划问题,在C++中可以使用循环或递归的方式来实现。以下是两种方法:
### 使用循环(迭代法)
```cpp
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1)
return n;
int a = 0, b = 1, c;
for (int i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int term;
cout << "请输入要计算的斐波那契数列项:";
cin >> term;
cout << "第" << term << "项的斐波那契数是:" << fibonacci(term) << endl;
return 0;
}
```
### 使用递归(虽然效率较低)
```cpp
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int term;
cout << "请输入要计算的斐波那契数列项:";
cin >> term;
cout << "第" << term << "项的斐波那契数是:" << fibonacci(term) << endl;
// 由于递归会有大量重复计算,对于大数值可能会导致栈溢出
// 对于实际应用,应优先考虑迭代法
return 0;
}
```
阅读全文