本题要求编写程序,计算序列 1- 1/3 + 1/5 - 1/7 + 1/9……的前N项之和。 输入格式: 在一行中给出一个正整数N。 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。 输入样例: 20 输出样例: sum = 0.773 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-03-17 21:45:30 浏览: 460
c代码-13、功能:计算1-1/2+1/3-1/4+……+1/99-1/100。
这道题目与上一个题目的思路类似,只是符号不同。同样可以分别计算数列中正数和负数的和,最后相减得到结果。具体实现如下:
```c
#include <stdio.h>
int main() {
int n;
double sum = 0.0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
sum += 1.0 / (2 * i + 1);
} else {
sum -= 1.0 / (2 * i + 1);
}
}
printf("sum = %.3f\n", sum);
return 0;
}
```
上面的代码中,我们使用了一个变量`sum`来保存前n项之和。在循环中,我们根据当前项的奇偶性分别累加和减去数列中的一个元素,即1/(2i+1)或-1/(2i+1),最后输出`sum`即可。
需要注意的是,我们使用了`double`类型来保存前n项之和,并在输出时保留了三位小数。
阅读全文