用C语言求分数数列1/2,2/3,3/4前20项的和
时间: 2023-11-05 08:41:19 浏览: 81
#include <stdio.h>
int main() {
int i;
double sum = 0;
for(i = 1; i <= 20; i++) {
sum += (double)i / (i + 1);
}
printf("前20项的和为:%lf\n", sum);
return 0;
}
相关问题
C语言求分数序列2/1,3/2,5/3,8/5,13/8,21/13....前20项的和答案
分数序列2/1,3/2,5/3,8/5,13/8,21/13....是一个斐波那契数列的变形,可以使用循环来求解前20项的和。以下是一个C语言的代码实现:
```
#include <stdio.h>
int main() {
int n = 20;
double a = 2, b = 1, sum = 0, temp;
for (int i = 1; i <= n; i++) {
sum += a / b;
temp = a + b;
b = a;
a = temp;
}
printf("前20项的和为:%lf", sum);
return 0;
}
```
c语言,现有一分数数列1/2、2/3、3/5、5/8、8/13、13/21、……,求该数列前 n 项的和。(n 为读入数据,输出结果保留两位小数)
这个数列可以看出是斐波那契数列的一个变形,因为每一项的分子都是前两项的和,分母则是前一项的值。
可以使用循环来计算前 n 项的和,具体实现如下:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 读入 n
double sum = 0.0;
double numerator = 1.0, denominator = 2.0; // 前两项
for (int i = 1; i <= n; i++) {
sum += numerator / denominator; // 累加当前项
double temp = numerator + denominator; // 计算下一项的分子
numerator = denominator; // 更新分子为当前项的分母
denominator = temp; // 更新分母为下一项的分子
}
printf("%.2f", sum); // 输出结果,保留两位小数
return 0;
}
```
注意,这里使用了 double 类型来存储分数,因为分数的值可能会非常大,使用整数类型会导致精度丢失。
阅读全文