用c++求数列1/2,2/3,3/5,5/8,8/13,13/21,…前n项之和。n由键盘输入
时间: 2023-12-12 12:57:10 浏览: 63
```c
#include <stdio.h>
int main() {
int n;
double a = 1, b = 2, sum = 0, tmp; // 声明变量,其中a/b表示数列中的分子/分母
printf("请输入项数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += b / a; // 累加当前项的值
tmp = b; // 用tmp暂存b的值,方便后续计算
b = a + b; // 更新b的值
a = tmp; // 更新a的值
}
printf("前%d项之和为:%lf\n", n, sum);
return 0;
}
```
注:由于本题中的数列是斐波那契数列的一种变形,因此可以用斐波那契数列的通项公式来求解。但为了更好地理解和掌握循环和条件语句的使用,本题代码采用了循环计算的方法。
相关问题
用C++数列1/2 ,2/3,3/5,5/8,8/13,13/21前n项和
#include <stdio.h>
int main() {
int n;
double a = 1, b = 2, sum = 0; // 初始化第一项a为1,第二项b为2,和sum为0
printf("请输入要求的前n项和:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += b / a; // 累加每一项的值
double tmp = a + b;
a = b; // 更新下一项的分子和分母
b = tmp;
}
printf("前%d项和为%.2lf", n, sum); // 输出保留两位小数的结果
return 0;
}
使用c++求2/1,3/2,5/3,8/5,13/8,21/13...这个数列的前20项之和。
这个数列可以看成是斐波那契数列的有理数版本,可以使用循环来计算前20项之和。以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n = 20;
int a = 2, b = 1, c;
double sum = 0;
for (int i = 1; i <= n; i++) {
sum += (double)a / b;
c = a + b;
b = a;
a = c;
}
cout << "前" << n << "项之和为:" << sum << endl;
return 0;
}
```
输出结果为:
```
前20项之和为:32.6603
```
阅读全文