c++算1+1+1/2+1/3+1/5+1/8+...当最后一项小于e (用户输入)时结束。提示各项的分母为fibonacci数列: 0, 1,1,2,3,5,8,。.其中第0项为0。要求:求fibonacci数列第n项写成递归函数。
时间: 2024-03-30 17:10:42 浏览: 30
以下是实现代码:
```c++
#include <iostream>
using namespace std;
// 递归实现斐波那契数列
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
double e;
cout << "请输入 e 的值:";
cin >> e;
double sum = 0;
int n = 0;
double num;
do {
num = 1.0 / fibonacci(n + 2);
sum += num;
n++;
} while (num >= e);
cout << "计算结果为:" << sum << endl;
return 0;
}
```
首先,输入用户想要的最小值 e。然后,使用循环计算出每一项的值,直到最后一项小于 e。在循环中,使用 fibonacci 函数计算出斐波那契数列中第 n + 2 项的值作为分母,计算出当前项的值 num,将其加入总和 sum 中,并将 n 加 1。最后,输出计算结果。
斐波那契数列的递归函数实现如下:
```c++
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
当 n 为 0 或 1 时,返回对应的值。否则,返回斐波那契数列中第 n - 1 项和第 n - 2 项之和。