题目:求三个互切圆所围面积。
分析:简单题、计算几何。海伦定理+余弦定理。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
double pi = acos(-1.0);
int main()
{
int n;
double r1,r2,r3,a,b,c,p,s;
while ( scanf("%d",&n) != EOF )
while ( n -- ) {
scanf("%lf%lf%lf",&r1,&r2,&r3);
a = r1+r2;
b = r1+r3;
c = r2+r3;
p = (a+b+c)*0.5;
s = sqrt(p*(p-a)*(p-b)*(p-c));
double a1 = acos((a*a+b*b-c*c)/2.0/a/b);
double a2 = acos((b*b+c*c-a*a)/2.0/c/b);
double a3 = acos((a*a+c*c-b*b)/2.0/a/c);
double ss = 0.5*(a1*r1*r1+a2*r3*r3+a3*r2*r2);
printf("%.6lf\n",s-ss);
}
return 0;
}