E.375 - Inscribed Circles and Isosceles Triangles

或许是刘大神按照白书出题的时候,想检验一下我们读书情况.
这道题只能用 pi=4.0*atan(1.0);计算pi值.
这道题在一个等腰三角形中间作内切圆,直到半径小于0.000001,然后求出这些内切圆的周长.
有一个性质,角度不变.
const double pi=4.0*atan(1.0);
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        double d,h;
        scanf("%lf %lf",&d,&h);
        double arf=atan((2*h)/d);
        double arf_=arf/2.0;
        double r=(d*tan(arf_))/2.0;
        double C=0.0;
        while(r>=0.000001)
        {
            C+=2*pi*r;
            h-=2*r;
            d-=(4*r)/tan(arf);
            r=(d*tan(arf_))/2.0;
        }
        printf("%13.6lf\n",C);
        if(T) putchar('\n');
    }
    return 0;
}

你可能感兴趣的:(uva,Geometry,Maths-Simple)