HDU 1071

求曲线和直线围成的面积

求表达式,求积分

 1 #include <iostream>
 2 using namespace std;
 3 double x[4],y[4];
 4 int t;
 5 double k,m;//fx1: y=kx+m
 6 double a,b,c;//fx2: y=a(x-b)^2+c
 7 void getfx1()
 8 {
 9     k=(y[3]-y[2])/(x[3]-x[2]);
10     m=y[2]-k*x[2];
11 }
12 void getfx2()
13 {
14     a=(y[2]-y[1])/(x[1]-x[2])/(x[1]-x[2]);
15     b=x[1];
16     c=y[1];
17 }
18 double getarea()
19 {
20     double f1=1.0/3*a*x[3]*x[3]*x[3]-(2*a*b+k)/2*x[3]*x[3]+(a*b*b+c-m)*x[3];
21     double f2=1.0/3*a*x[2]*x[2]*x[2]-(2*a*b+k)/2*x[2]*x[2]+(a*b*b+c-m)*x[2];
22     return f1-f2;
23 }
24 int main()
25 {
26     scanf("%d",&t);
27     while(t--)
28     {
29         for(int i=1;i<=3;i++) scanf("%lf%lf",&x[i],&y[i]);
30         getfx1();
31         getfx2();
32         printf("%.2lf
",getarea());
33     } 
34 } 
我自倾杯,君且随意
原文地址:https://www.cnblogs.com/nicetomeetu/p/5533082.html