uva 11524 海伦公式

#include <bits/stdc++.h>
using namespace std;
int T;
double r, m1, m2, m3, n1, n2, n3;
int main(int argc, char const *argv[])
{
	scanf("%d", &T);
	while (T--)
	{
		scanf("%lf%lf%lf%lf%lf%lf%lf", &r, &m1, &n1, &m2, &n2, &m3, &n3);
		double ap = r * sqrt((n1 * n2 + m1 * m2 + n1 * m2) * m1 * m2 / (n1 * n2 * n1 * m2));
		double area = r * (ap + ap * n1 / m1 + ap * n1 * n2 / m1 / m2);
		printf("%.4lf\n", area);
	}
	return 0;
}



三角形面积 S = 1/2 * a * r + 1/2 * b * r + 1/2 * c * r 
海伦公式 S = sqrt(p * (p - a) * (p - b) * (p - c)) 其中 p = (a + b + c) / 2 
可以设其中AP为x,那么所有边用x表示,联立两个公式把x解出来。

你可能感兴趣的:(uva 11524 海伦公式)