UVa 375 Inscribed Circles and Isosceles Triangles

【转载出处】

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值