这就是应该算是数学题,光是公式代换就用了好久,二分只是为了凑值用的。
代码如下
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
double l,ll,right,left,mid,n,c;
while(scanf("%lf%lf%lf",&l,&n,&c)!=EOF)
{
if(l<0&&n<0&&c<0)
break;
ll=l*(1+n*c);
left=0.0;
right=asin(1.0);
while(right-left>1e-12)
{
mid=(right+left)/2;
if(ll*sin(mid)/mid<=l)
right=mid;
else
left=mid;
}
printf("%.3lf\n",l/2*tan(left/2));
}
}