/*
* 解题思路:
* 题意不难理解、一直求内接圆半径、知道半径长度小于0.000001为止
*/
#include <math.h>
#include <stdio.h>
int main( )
{
    int t;
    double x,y,r,sum;
    const double pi = 4.0 * atan( 1.0 );
    
    scanf("%d",&t);
    while( t-- )
    {
        scanf("%lf%lf",&x,&y);
        sum = 0; 
        r = tan( atan( y/x*2 ) /2 ) * x/2;
        while( r >= 0.000001 )
        {
            sum += r;  
            x = x/y*( y-2*r );
            y -= 2*r;   
            r = tan( atan( y/x*2 ) /2 ) * x/2;
        }
        printf("%13.6lf\n",sum*2*pi);
        if( t ) puts("");
    }
    return 0;
}原文:http://blog.csdn.net/u011886588/article/details/19832109