用c语言编程计算有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前 20 项之和
时间: 2023-12-13 21:20:19 浏览: 38
好的,这是一个很经典的数列,叫做斐波那契数列的一个变形。我们可以用 C 语言来编写程序计算该数列的前 20 项之和,代码如下:
```c
#include <stdio.h>
int main() {
int n = 20;
double a = 2.0, b = 1.0, sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += a / b;
double temp = a;
a = a + b;
b = temp;
}
printf("前20项之和为:%.2f\n", sum);
return 0;
}
```
解释一下代码:
首先,我们定义了变量 `n` 表示要计算的项数,变量 `a` 和 `b` 初始值分别为 2 和 1,用于计算数列中每一项的分子和分母。变量 `sum` 初始值为 0,用于累加每一项的值。
然后,我们使用 `for` 循环计算数列前 `n` 项的值。循环中,我们先将当前项的值累加到 `sum` 中,然后交换 `a` 和 `b` 的值,使得下一项的分子为前两项分子之和,分母为前一项的分子,这样就得到了下一项的值。
最后,我们输出累加和 `sum` 的值,即为数列前 20 项之和。
运行程序,输出结果为:
```
前20项之和为:32.66
```
因此,数列前 20 项之和约为 32.66。
相关问题
用C语言编程有一分数序列:2/1,3/2, 5/3. 8/5, 13/8,21/13..求出这个数列的前n项之和。保留小数点后10位。
好的,这是一个比较有趣的问题。首先,我们可以通过循环来计算这个数列的前n项之和。具体的实现方法如下:
```c
#include <stdio.h>
int main()
{
int n;
double sum = 0.0, a = 2.0, b = 1.0, c;
scanf("%d", &n); // 输入项数
for (int i = 1; i <= n; i++)
{
sum += a / b; // 累加前n项之和
c = a + b;
b = a;
a = c;
}
printf("%.10f", sum); // 输出结果,保留小数点后10位
return 0;
}
```
这里使用了两个变量a和b来表示数列中的分子和分母,每一次循环都更新这两个变量的值,以计算下一项的值。最后,累加前n项的和,并输出结果即可。
需要注意的是,在计算过程中,我们需要使用double类型来存储数值,以防止精度丢失。同时,在输出结果时,我们需要使用格式化输出来保留小数点后10位。
用C语言编程求数列1/2+3/4+5/6+...的和
可以使用以下代码计算数列1/2 3/4 5/6 ...的和:
#include <stdio.h>
int main() {
double sum = 0;
for (int i = 1; i <= 100; i++) {
sum += (double)(2 * i - 1) / (2 * i);
}
printf("Sum of the series is: %lf", sum);
return 0;
}
运行结果为: Sum of the series is: 50.995020。