请用c++编程:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 求出这个数列的前n 项之和。保留小数点后10位。 输入样例: 5 输出样例: 8.3916666667 数据规模 1<= n <=40
时间: 2023-12-13 14:53:54 浏览: 81
以下是用递推的方法实现的代码:
```cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
double a = 2, b = 1, sum = 0;
for (int i = 1; i <= n; i++) {
sum += a / b;
double t = a + b;
b = a;
a = t;
}
cout << fixed << setprecision(10) << sum << endl;
return 0;
}
```
首先读入输入的数 $n$,然后定义三个变量 $a$、$b$ 和 $sum$,分别表示数列中当前项的分子、分母和前 $n$ 项之和。初始时,$a$ 和 $b$ 分别赋值为 $2$ 和 $1$,$sum$ 赋值为 $0$。
接下来使用一个循环,从 $1$ 到 $n$ 遍历数列中的每一项,每次将 $a / b$ 加到 $sum$ 中,然后计算出数列中下一项的分子和分母,分别赋值给 $a$ 和 $b$。
最后输出 $sum$,并且使用 `fixed` 和 `setprecision` 控制输出的小数位数为 $10$。
相关问题
c++ 有一个分数序列:2/1,3/2,5/3,8/5,13/8, …编程求此序列的前 20 项之和。
要计算分数序列2/1,3/2,5/3,8/5,13/8, …的前20项之和,我们可以使用循环和变量来逐步计算每一项的分子和分母,并累加每一项的值。以下是一个C++程序示例:
```cpp
#include <iostream>
int main() {
int n = 20; // 前20项
double sum = 0.0;
double numerator = 2.0; // 分子
double denominator = 1.0; // 分母
for (int i = 0; i < n; ++i) {
sum += numerator / denominator;
// 计算下一项的分子和分母
double temp = numerator + denominator;
denominator = numerator;
numerator = temp;
}
std::cout << "前20项之和为: " << sum << std::endl;
return 0;
}
```
这个程序首先初始化前两项的分子和分母,然后通过循环计算每一项的值并累加到总和中。最后输出前20项的和。
已知一个分数序列为:2/1,3/2,5/3,8/5,13/8,21/13....求出这个数列的前20项之和,并输出结果。用C++编程
可以使用C++编程语言来解决这个问题,代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
// 定义分子和分母的初始值
int numerator1 = 2, numerator2 = 3;
int denominator1 = 1, denominator2 = 2;
// 定义分数序列的前两项
double fraction1 = (double)numerator1 / denominator1;
double fraction2 = (double)numerator2 / denominator2;
// 定义分数序列的和
double sum = fraction1 + fraction2;
// 循环计算分数序列的后面几项并累加和
for (int i = 3; i <= 20; i++) {
int numerator3 = numerator1 + numerator2;
int denominator3 = denominator1 + denominator2;
double fraction3 = (double)numerator3 / denominator3;
sum += fraction3;
numerator1 = numerator2;
numerator2 = numerator3;
denominator1 = denominator2;
denominator2 = denominator3;
}
// 输出分数序列的和
cout << "前20项之和为:" << sum << endl;
return 0;
}
```
输出结果为:
```
前20项之和为:32.6603
```
因此,这个分数序列的前20项之和约为 32.66。
阅读全文
相关推荐















