LightOJ 1331 Agent J

本文介绍了一种通过海伦公式求解三个两两相切圆所围成的阴影部分面积的方法。具体步骤包括:首先利用海伦公式计算由三个圆心构成的三角形面积,然后减去每个扇形的面积,最终得到阴影区域的面积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接 http://lightoj.com/volume_showproblem.php?problem=1331

题意:给出三个两两相切圆的半径,求阴影部分面积

思路:海伦公式求已三个圆心为顶点的三角形的面积,减去三个扇形的面积。

#include <stdio.h>
#include <math.h>

double Sector (double a,double b,double c)
{
	double alpha=acos(((a+b)*(a+b)+(a+c)*(a+c)-(b+c)*(b+c))/(2*(a+b)*(a+c)));
	return a*a*alpha/2;
}

double Triangle (double a,double b,double c)
{
	double p=(a+b+c)/2;
	return sqrt(p*(p-a)*(p-b)*(p-c));
}

double Deal ()
{
	double r1,r2,r3;
	scanf("%lf%lf%lf",&r1,&r2,&r3);
	return Triangle(r1+r2,r1+r3,r2+r3)-Sector(r1,r2,r3)-Sector(r2,r1,r3)-Sector(r3,r1,r2);
}

int main ()
{
	int T;
	scanf("%d",&T);
	for (int cas=1;cas<=T;cas++)
		printf("Case %d: %.8lf\n",cas,Deal());
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值