求一系列内切圆的周长之和,第一个内切圆是最大的,然后第二个是在一个圆上面跟第一个圆相切,并且与等腰三角形两条边相切,这样一直下去直到半径r小于一个特定的值。
#include<stdio.h>
#include<math.h>
int main()
{
double b, h, l, sum, temp, r ;
double Pl = acos(-1.0);
int T;
scanf("%d", &T);
while(T--)
{
sum = l = r = 0;
scanf("%lf%lf", &b, &h);
while(1)
{
l = atan(h/(b/2));
r = tan(l/2)*b/2;
if(r < 0.000001) break;
sum += 2*r*Pl;
b = b*(h-2*r)/h, h = h - 2*r;
}
printf("%13.6lf\n", sum);
if(T != 0) printf("\n");
}
return 0;
}