PTA 翁恺 7-32 求交错序列前N项和

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

输入格式:

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

输出格式:

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

输入样例:

5
 
结尾无空行

输出样例:

0.917
 
结尾无空行
 
整体思路
两个数组分别存储分子和分母,有一个是正负交错,用-1的次方调节正负。
整体代码
#include <stdio.h>
#include <math.h>

int main (void){
    int input = 0;
    scanf ("%d",&input);
    int i = 0;
    double sum = 0;
    double a[50] = {0},b[50] = {0};
    for (i = 1;i <= input;++i)
    {
        a[i] = i * pow (-1,i+1);
        b[i] = i * 2 - 1;
        sum += a[i] / b[i];
    }
    printf("%.3f",sum);
    return 0;
}

讨论:

  • 这里用到了Pow函数,返回值为double,如果数组a定义为int型会有精度丢失,产生错误。
posted @ 2021-10-19 17:22  海萌萌萌萌萌萌  阅读(311)  评论(0编辑  收藏  举报