题目:已知一个三角形内切圆的半径r,以及它分三条边的逆时针比例,求三角形面积。
分析:计算几何。利用面积公式联立等式计算即可,这三边为k*a,k*b,k*c。
根据内切圆计算面积S△ABC = r*k(a+b+c)/ 2;
根据海伦公式计算面积S△ABC = sqrt(p(p-a)(p-b)(p-c)) { 其中p = k (a+b+c)/ 2 };
解出k,求出面积即可。
说明:╮(╯▽╰)╭。
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> using namespace std; int main() { int t; while (cin >> t) while (t --) { double r,m1,n1,m2,n2,m3,n3,k,a,b,c; cin >> r >> m1 >> n1 >> m2 >> n2 >> m3 >> n3; a = 1.0; b = n1*(m2+n2)/(m2*(n1+m1)); c = m1*(m3+n3)/(n3*(n1+m1)); k = r*sqrt((a+b+c)/(a+b-c)/(a+c-b)/(b+c-a)); printf("%.4lf\n",(a+b+c)*r*k); } return 0; }
时间: 2024-11-19 06:34:14