375 Inscribed Circles and Isosceles Triangles 等腰三角形 内接圆 圆周率PI表示

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=311

 

题意很简单,等腰三角形,给了高和底长,三角形求内接圆,求周长,再把下面的和内接圆最上面相切的去掉,又是一个等腰三角形,再重复.....直至内接圆半径小于给定值.

学到的东西:

1.三角形内接圆半径 r=2*S/L   S为面积,L为周长.很简单,三个小部分相加即大三角形.

2.圆周率在c里面要这样 const double PI=acos(-1.0);    那个函数在math.h里面

    0<=double acos(double x)<=PI    -1<=x<=1,    这个函数就是返回一个数值的反余弦弧度值而cos(PI)=-1.看图,好久不见啊,你好你好!

    

    

#include <stdio.h>

#include <math.h>



const double PI=acos(-1.0);



int main(void)

{

    int cas;

    scanf("%d",&cas);

    while (cas--)

    {

        double b,h,LSum=0;

        scanf("%lf %lf",&b,&h);



        double BOrigin=b,HOrigin=h;



        while (1)

        {

            double rtemp;

            rtemp=(b*h)/(b+sqrt(b*b+4*h*h));



            if (rtemp<0.000001)

            {

                break;

            }



            LSum+=2*PI*rtemp;



            h=h-2*rtemp;

            b=BOrigin/HOrigin*h;

        }



        printf("%13.6f\n",LSum);

        if (cas)

        {

            putchar('\n');

        }

    }

    return 0;

}

 

你可能感兴趣的:(RIA)