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