用c++求数列1/2,2/3,3/5,5/8,8/13,13/21,…前n项之和。n由键盘输入
时间: 2023-12-12 13:57:10 浏览: 27
```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/3、4/5、6/9等数列前n项和
A:数列前n项和的公式为:
S_n = a_1 + a_2 + a_3 + ... + a_n
其中,a_i为数列中第i项的值。
对于这个数列,可以发现,它是由一系列分数相加得到的,因此可以先将相邻分数化为通分后再相加,得到:
2/3 + 4/5 + 6/9 = 30/45 + 36/45 + 30/45 = 96/45
因此,数列前n项和的公式为:
S_n = (2n + 4n + 6n + ... + 2n(n-1)) / (3*5*(n-1))
化简得:
S_n = n(n+1)/15
注:此处的“n”为数列中分母为“3n”的分数的序号,如n=1时,对应的分数为2/3;n=2时,对应的分数为4/5,以此类推。