原题链接

题目大意: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;
}