一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写c++程序求出这个序列的前n项之和。
时间: 2023-11-04 13:07:10 浏览: 279
这个分数序列可以表示为前一项的分子与分母之和作为后一项的分子,前一项的分子作为后一项的分母。因此,我们可以使用循环来计算前n项的和。以下是一个C++程序的实现:
```
#include <iostream>
using namespace std;
int main() {
int n;
float sum = 0, a = 2, b = 1, c;
cout << "请输入要计算的项数n:";
cin >> n;
for (int i = 1; i <= n; i++) {
sum += a / b;
c = a + b;
b = a;
a = c;
}
cout << "前" << n << "项之和为:" << sum << endl;
return 0;
}
```
相关问题
有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ... 用c++编写程序求出这个序列的前20项之和。
以下是用 C 语言编写的程序,可以求出这个序列的前20项之和:
```c
#include <stdio.h>
int main() {
int i;
double a = 2, b = 1, sum = 0, temp;
for (i = 1; i <= 20; i++) {
sum += a / b;
temp = a;
a = a + b;
b = temp;
}
printf("前20项之和为:%lf\n", sum);
return 0;
}
```
输出结果为:
```
前20项之和为:32.660260
```
希望能帮到您!
用c++编写 循环求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…,前n项之和
好的,我可以帮你写一个用 C++ 编写的程序来解决这个问题。以下是程序的代码:
```c++
#include<iostream>
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 temp = b;
b = a;
a = a + temp;
}
cout << sum << endl;
return 0;
}
```
在这个程序中,我们首先输入一个整数 n,表示我们要求前 n 项的和。然后我们使用两个 double 类型的变量 a 和 b 来存储分数序列中的分子和分母。我们初始化 a = 2,b = 1,表示序列的第一项为 2/1。我们还用一个 double 类型的变量 sum 来存储前 n 项的和,初始化为 0。
然后我们使用一个 for 循环来求分数序列的前 n 项之和。在每一次循环中,我们将 a/b 加入到 sum 中,然后更新 a 和 b 的值,使它们分别为原来的 b 和 a+b。这是因为分数序列的下一项是前两项之和的分数形式,即 a/b + (a+b)/a = (2a+b)/b。
最后,我们输出 sum 的值即可。注意,输出时要加上 endl,以换行。
希望这个程序能够帮到你!
阅读全文