UVA375

时间:2024-08-07 19:03:26

题意:

已知等腰三角形的高H,底边长B,这时有一个内切圆C,

以内切圆C和长度为B对应的角的角平分线的交点做切线.

切线与角平分线相交,此时切线,和俩边又会出现一个小的等腰三角形,也有一个小的内切圆C1,内切圆一直往上堆,直到内切圆的半径r<0.000001

计算内切圆,C0,C1...Cn的周长和,最后一个内切圆r>0.000001

画图,利用面积相等推算公式

#include<stdio.h>
#include<iostream>
#include <strstream>
#include<string>
#include<memory.h>
#include<math.h>
#include<sstream>
using namespace std;
#define pi M_PI;
int main()
{
//freopen("d:\\1.txt", "r", stdin);
int t;
cin>>t;
while(t--)
{
double B,H;
cin>>B>>H;
double b = B/2;
double a;
double r = b*H/(a+b);
double sum = 0.0;
while(r>0.000001)
{
a = sqrt(H*H+b*b);
r = b*H/(a+b);
if(r<0.000001)
break;
sum += M_PI*2*r;
H = H-2*r;
b = (a-b)*b/(a+b);
}
printf("%13.6f\n",sum);
if(t)
printf("\n");
}
}

  

相关文章