hdu 1071The area

以前做过这道题目,不过当时是找的牛人推出来的公式,,昨天又重新做了下,自己也推出来一个公式 ^_^。。

高数没能学好,一开始只是以为定积分一下就ok了呢。。

没想到定积分是求两点和曲线和x轴所围成的面积,最后再减去一个梯形的面积就行了。。

先根据所给的点求出a,b,c;

代码:

# include<stdio.h>

# include<math.h>

int main()

{

    int t;

    double x1,y1,x0,y0,x2,y2,a,b,c,ans;

    scanf("%d",&t);

    while(t--)

    {

        scanf("%lf%lf%lf%lf%lf%lf",&x0,&y0,&x1,&y1,&x2,&y2);

        a=(y1-y0)/((x1-x0)*(x1-x0));

        b=-2*a*x0;

        c=y0+a*x0*x0;



        ans=1.0/3*a*x2*x2*x2+1.0/2*b*x2*x2+c*x2 - (1.0/3*a*x1*x1*x1+1.0/2*b*x1*x1+c*x1) - (y2+y1)*(x2-x1)/2;

            printf("%.2lf\n",ans);

    }

    return 0;

}

你可能感兴趣的:(HDU)