您的位置:首页 > 其它

多项式求和(hud2011)

2009-09-19 14:27 417 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2011

#include <iostream>

#include <math.h>
#include <iomanip>
using namespace std;
int main()
{
int i,j;
unsigned m,n,a[100];
cin>>m;
if(m<100&&m>0)
for(int i=0;i<m;i++)
{
cin>>n;
if(n>0&&n<1000)
a[i]=n;
}
for(i=0;i<m;i++)
{
double sum=0;
for (j=1;j<=a[i];j++)
if (j%2==0)
sum+=(-1)*1.0/j;//又在这里犯错了,注意小数啊
else
sum+=1.0/j;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;
}
return 0;
}

问题解决:编译时老是出现

2

1 2

1.00

1.00

原因是sum+=(-1)*1.0/j;语句错写成sum+=(-1)*1/j;导致去掉了+.05而结果变成1.00

仔细点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: