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);
【代码】
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"); } }
相关文章推荐
- UVA 375 (暑假-几何 -B - Inscribed Circles and Isosceles Triangles)
- Uva 375 - Inscribed Circles and Isosceles Triangles
- uva 375 Inscribed Circles and Isosceles Triangles 简单几何
- UVA375 Inscribed Circles and Isosceles Triangles
- uva375 Inscribed Circles and Isosceles Triangles
- UVa 375 - Inscribed Circles and Isosceles Triangles
- UVa 375 Inscribed Circles and Isosceles Triangles (等腰三角形内切圆&规律)
- UVA-375 Inscribed Circles and Isosceles Triangles
- uva_375 - Inscribed Circles and Isosceles Triangles
- uva 375 - Inscribed Circles and Isosceles Triangles
- UVa - 375 - Inscribed Circles and Isosceles Triangles
- UVA - 375 Inscribed Circles and Isosceles Triangles
- Uva 375 - Inscribed Circles and Isosceles Triangles
- UVA - 375 Inscribed Circles and Isosceles Triangles
- UVa 375 - Inscribed Circles and Isosceles Triangles
- UVA 375 Inscribed Circles and Isosceles Triangles
- UVA - 375 Inscribed Circles and Isosceles Triangles
- UVa 375 Inscribed Circles and Isosceles Triangles
- uva 375 Inscribed Circles and Isosceles Triangles(相似三角形)
- UVA 375-Inscribed Circles and Isosceles Triangles#