求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34……的前n项的和。C语言
时间: 2023-09-18 11:14:31 浏览: 135
可以使用循环来计算每一项的值并累加求和,以下是一种实现方式:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入项数n:");
scanf("%d", &n);
double sum = 0.0;
int a = 1, b = 1; // 初始化第一项为1/1
for (int i = 1; i <= n; i++) {
sum += (double) a / b; // 累加每一项的值
int tmp = b;
b = a + b; // 更新下一项的分母
a = tmp; // 更新下一项的分子
}
printf("前%d项的和为%.2f\n", n, sum);
return 0;
}
```
解释一下代码:
1. 首先读入需要计算的项数n。
2. 初始化第一项为1/1,并使用循环计算每一项的值并累加到sum中。
3. 在每一轮循环中,先计算当前项的值并累加到sum中,然后更新分子和分母用于计算下一项的值。具体来说,下一项的分母是当前项的分子加上当前项的分母,下一项的分子是当前项的分母。
4. 最后输出计算结果。
PS:为了避免整数除法的问题,需要将分子强制转换为double类型再计算。
阅读全文