HDU1071

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

 

HDU1071为一题纯粹的简单数学的积分问题,只是求解抛物线、直线之后求解其所夹的面积大小,代码如下:

 

 

#include"stdio.h"
#include"math.h"
double absf(double a)
{
	return a>0?a:-a;
}
struct point 
{
	double x,y;
}p1,p2,p3;
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%lf%lf",&p1.x,&p1.y);
		scanf("%lf%lf",&p2.x,&p2.y);
		scanf("%lf%lf",&p3.x,&p3.y);//y=a*(x-b)^2+c
		double x1=p2.x,x2=p3.x;
		double a=(p2.y-p1.y)/((p2.x-p1.x)*(p2.x-p1.x));//y2=a*(x2-b)^2+c,y3=a*(x3-b)^2+c两式相减求得a 
		double b=p1.x;
		double c=p1.y;
		double k=(p3.y-p2.y)/(p3.x-p2.x);//直线的斜率k
		double d=p2.y-k*p2.x;
		double s1=absf((a/3*x2*x2*x2-a*b*x2*x2+(a*b*b+c)*x2)-(a/3*x1*x1*x1-a*b*x1*x1+(a*b*b+c)*x1));
		//抛物线的面积
		double s2=absf(k*x2*x2/2+d*x2-k*x1*x1/2-d*x1);
		double area = absf(s1-s2);
		printf("%.2lf\n",area);
	}
	return 0;
}


 

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值