题目链接 http://lightoj.com/volume_showproblem.php?problem=1385
题意:E,F分别为AC,AB上任意一点,BE,CF的交点为X,给出面积a,b,c,求d的值或不能确定
思路:连结EF,令三角形EFX的面积为x,三角形AEF的面积为y,则d=x+y。由比例关系可以得出:a/b=x/c, (a+x+y)/(b+c)=y/(x+c)
解方程过程中要求b-x为正数才有解。
#include <stdio.h>
const double STD=1e-9;
int main ()
{
int T;
scanf("%d",&T);
for (int cas=1;cas<=T;cas++)
{
double a,b,c,x,y;
scanf("%lf%lf%lf",&a,&b,&c);
x=a*c/b;
if (b-x < STD) //b-x不能为负,也不能等于0
printf("Case %d: -1\n",cas);
else
{
y=(a+x)*(x+c)/(b-x);
printf("Case %d: %.8lf\n",cas,x+y);
}
}
return 0;
}
/*
5
517 647 832
916 143 61
849.09 822.31 950.86
316.95 147.46 695.55
1.28 2.67 3.12
Output
Case 1: -1
Case 2: -1
Case 3: -1
Case 4: -1
Case 5: 12.40636111
*/