您的位置:首页 > 其它

UVa 375 Inscribed Circles and Isosceles Triangles

2014-08-25 21:30 661 查看
【转载出处】
http://blog.csdn.net/frankiller/article/details/7729784
【解题思路】

求等腰三角形的内切圆周长,内切圆不止一个,切完一个继续内切直到r<=0.000001;

设初始的内切圆半径为R;

勾股定理 斜边L=sqrt(R*R+B*B\4);

接下来求R有2种方法:

1继续用勾股定理:(L-B/2)^2+R^2=(H-R)^2    R=sqrt(H*H+B*B/4);   R=R-B/2;     R=(R*R-H*H)/(-2*H);

2.面积法:R*L+R*B/2=B*H/2;                                   R =B*H/(2*L+B);

【代码】

#include<stdio.h>
#include<math.h>
#define pi asin(1.0)*2

void main() {
double B,H,r,h,R;
int t;

scanf("%d",&t);
while (t--) {
scanf("%lf%lf",&B,&H);
R = sqrt(H*H+B*B/4);
R = B*H/(2*R+B);
h=H;  r=R;
while (r >= 0.000001) {
h = h-2*r;
r = R*h/H;
}
printf("%13lf\n",(H-h)*pi);

if (t)
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  几何