有一分数序列:2/1+3/2+5/3+......求出这个数列的前20项之和。C语言编码。加注释
时间: 2023-06-15 09:04:46 浏览: 76
```c
#include <stdio.h>
int main() {
double sum = 0; // 存储数列的和
double numerator = 2, denominator = 1; // 数列的第一项
double temp; // 用于交换分子和分母
int i;
for (i = 1; i <= 20; i++) {
sum += numerator / denominator; // 求出当前项并加到和中
temp = numerator; // 交换分子和分母
numerator = numerator + denominator;
denominator = temp;
}
printf("前20项之和为:%.2lf", sum); // 输出结果,保留两位小数
return 0;
}
```
注:这里使用了 `double` 类型来存储分数和和分子、分母,因为分数相加可能超出 `int` 的范围。
相关问题
c语言 有一个分数序列2/1+3/2+5/3+8/5+13/8+...,求出这个数列前20项的和
这是一道C语言编程题,要求计算分数序列2/1+3/2+5/3+8/5+13/8+...的前20项之和。以下是一种解法:
```
#include <stdio.h>
int main() {
float top = 2, base = 1;
float t, sum = 0;
int times = 0;
while(times++ < 20) {
sum += top/base;
t = base;
base = top;
top += t;
}
printf("%f\n", sum);
return 0;
}
```
这个程序使用了循环来计算分数序列的前20项之和。在循环中,top和base分别表示分数序列中当前项的分子和分母,sum表示前面所有项的和,times表示当前是第几项。每次循环中,将当前项的分数加到sum中,然后更新top和base的值,使它们分别变成下一项的分子和分母。最后输出sum的值即可。
JAVA有一分数序列:2/1+3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
这个数列是斐波那契数列的一个变形,可以使用循环来计算前20项的和。具体实现如下:
```
public class Main {
public static void main(String[] args) {
double sum = 0;
double a = 2, b = 1;
for (int i = 1; i <= 20; i++) {
sum += a / b;
double temp = a + b;
b = a;
a = temp;
}
System.out.println("前20项之和为:" + sum);
}
}
```
输出结果为:前20项之和为:32.66026079864164