hdoj 1071 The Area 求面积

9 篇文章 0 订阅

题意:  给一条抛物线跟一条直线的两个交点坐标,加上抛物线的顶点坐标,求围起来的面积
分析:  面积用积分求了之后相减就可以。 
必须要有两个线的方程。于是若干时间求a.b.c.  k.b~~~  依次求出来就好了用笔算a,b,c花了若干时间……  不过这就是
数学题嘛。  还好高中知识还记得~~
 
 
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
 int T;
 cin>>T;
 while(T--)
 {
  double x1,x2,x3,y1,y2,y3;
  cin>>x1>>y1>>x2>>y2>>x3>>y3;
  double a,b,c,k,g;
  a=((y2-y1)*(x3-x2)-(y3-y2)*(x2-x1))/


((x2-x1)*(x3-x2)*(x1-x3));
  b=((y2-y1)-a*(x2*x2-x1*x1))/(x2-x1);
  c=y1-a*x1*x1-b*x1;
  k=(y3-y2)/(x3-x2);
  g=y3-k*x3;
  double ans1,ans2;
  ans1=(a*x3*x3*x3/3 + b*x3*x3/2 + 


c*x3) - (a*x2*x2*x2/3 + b*x2*x2/2 + 


c*x2);
  ans2=(k*x3*x3/2 + g*x3) - (k*x2*x2/2 


+ g*x2);
  cout<<setiosflags(ios::fixed)


<<setprecision(2)<<abs(ans1-ans2)


<<endl;
 }
 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值