题目链接:https://vjudge.net/contest/181589#problem/A
纯数学方法即可
代码如下:
#include<cstdio>
#include<cmath>
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
double H,h,D,L;
scanf("%lf%lf%lf",&H,&h,&D);
if(H-h>D)
L=h;
else if(H*H>(H-h)*D)
L=H+D-2*sqrt((H-h)*D);
else
L=h*D/H;
printf("%.3lf\n",L);
}
return 0;
}