c语言 有一个分数序列2/1+3/2+5/3+8/5+13/8+...,求出这个数列前20项的和
时间: 2023-11-18 09:55:14 浏览: 115
这是一道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的值即可。
相关问题
编写一个C语言程序,求分数序列:1/2+2/3+3/5+5/8+8/13…的前20项和
以下是一个求解分数序列前20项和的C语言程序:
```c
#include <stdio.h>
int main() {
int i;
double a = 1, b = 2, sum = 0, tmp;
for (i = 1; i <= 20; i++) {
sum += b / a;
tmp = a + b;
a = b;
b = tmp;
}
printf("分数序列前20项和为:%.2f\n", sum);
return 0;
}
```
程序中使用了两个变量a和b来表示分子和分母,初始值分别为1和2。在循环中,计算当前项的值并加到sum变量中,然后更新a和b的值,使它们分别变为上一个分数的分母和分子之和。循环20次后,输出sum的值即为所求的分数序列前20项的和。
有一分数序列:2/1+3/2+5/3+......求出这个数列的前20项之和。C语言编码。加注释
```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` 的范围。