[PTA] 习题2-4 求交错序列前N项和

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,结果保留三位小数。

输入样例:

5

输出样例:

0.917

代码: 

#include <stdio.h>int main(int argc, char *argv[]) 
{int N;int i;int j = 3;float sum = 1.0;float partsum;scanf("%d",&N);for (i = 2; i <= N; i++) {if (i % 2 == 0) {partsum = -(i * 1.0/j);sum += partsum;}else {partsum = (1.0 * i/j);sum += partsum;}j += 2;}printf("%.3f",sum);
}

思路:

先规定sum值为1,从第二项开始用循环计算对每次i的值取余数(判断是奇数项还是偶数项,奇数相加,偶数相减)每次j加2