ZOJ 1007 Numerical Summation of a Series

时间:2023-03-09 09:17:42
ZOJ 1007 Numerical Summation of a Series

原题链接

题目大意:x的取值从0.000到2.000,输出每个x对应的y(x)的值

解法:参考了这篇日志http://www.cnblogs.com/godhand/archive/2010/04/29/1723494.html。计算的公式文章里都推导了,关键是要把握好精度和运算效率的关系。分母中含有k的多项式越多,相同循环次数的结果的精度就越高。最后,还要加上一个误差项,没有这一项可能还是要WA。

参考代码:

#include<stdio.h>
#include<math.h> int main(){
double x,sum;
int i,j;
for(x=0.0;x<=2.0;x=x+0.001){
sum = 0;
for (i=1;i<10000;i++){
sum += 1.0 /( i*(i+1)*(i+x));
}
sum = sum*(1 - x)+( 1 -x)/(2* 10000 * 10000) + 1.0 ;
printf("%5.3f %16.12f\n", x, sum );
}
scanf("%d",&j); return 0;
}