UVa 375 Inscribed Circles and Isosceles Triangles

来源:互联网 发布:上瘾网络剧日本粉丝 编辑:程序博客网 时间:2024/04/30 05:23

【转载出处】

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)*2void 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");}} 


0 0