简要题意:
多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 计算前n项的和。
解题思路:
将1,-2,3,-4,……存入数组,输入测试实例个数,然后输入测试前几项数n,用1分别除以数组中的数得到新数组,将新数组的前n项求和,结果保留2位小数输出。
细节处理:
- 定义数组时新数组应定义为实型(double)数组。
- 在将原数组赋值给新数组时应注意要强制转换。
- 输出结果保留两位小数。
源代码:
#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;
}