Problem 3 分数和

简要题意:

多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...  计算前n项的和。

解题思路:

将1,-2,3,-4,……存入数组,输入测试实例个数,然后输入测试前几项数n,用1分别除以数组中的数得到新数组,将新数组的前n项求和,结果保留2位小数输出。

细节处理:

  1. 定义数组时新数组应定义为实型(double)数组。
  2. 在将原数组赋值给新数组时应注意要强制转换。
  3. 输出结果保留两位小数。

源代码: 

#include<iostream>
#define n 1000+10
int a[n],c[n];
double b[n];
using namespace std;
int main()
{
    int m, t=-1;
    a[1]=1;
    for(int i=1;i<=n;i++)
    {
        a[i]=i;
        t*=-1;
        c[i]=t*a[i];
    }
    while(cin>>m)
    {
        for(int i=1;i<=m;i++)
        {
            int x;
            cin>>x;        
            double sum=0.0;
            for(int i=1;i<=x;i++)
            {
                b[i]=(double)1/c[i]; //强制转换
                sum+=b[i];
            }
            printf("%.2f\n",sum);
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43240470/article/details/85763085
今日推荐