lightoj 1043 - Triangle Partitioning (数学)

1043 - Triangle Partitioning
Time Limit: 0.5 second(s)Memory Limit: 32 MB

See the picture below.

You are given ABAC and BCDE is parallel to BC. You are also given the area ratio between ADE and BDEC. You have to find the value of AD.

Input

Input starts with an integer T (≤ 25), denoting the number of test cases.

Each case begins with four real numbers denoting AB, AC, BC and the ratio of ADE and BDEC (ADE / BDEC). You can safely assume that the given triangle is a valid triangle with positive area.

Output

For each case of input you have to print the case number and AD. Errors less than 10-6 will be ignored.

Sample Input

Output for Sample Input

4

100 100 100 2

10 12 14 1

7 8 9 10

8.134 9.098 7.123 5.10

Case 1: 81.6496580

Case 2: 7.07106781

Case 3: 6.6742381247

Case 4: 7.437454786

 题意:如图ABC和ADE是相似三角形,给出AB AC BC边和SADE/SBDEC求AD边长。

思路:设两个三角形的高分别为h H,设比例k=h/H = ad/ab = de/bc = ae/ac

Sade/Sbdec=1/(Sabc/Sade-1) =rs

Sabc/Sade=(1+rs)/rs = k^2  -->k

ad=ab*k

代码:

#include<cstdio>
#include<cmath>
#define LL long long 
int main()
{
	int t,kcase=1;
	double ab,ac,bc,rs,k,ad;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%lf%lf%lf%lf",&ab,&ac,&bc,&rs);
		k=sqrt(rs/(1+rs));
		ad=ab*k;
		printf("Case %d: %.7lf\n",kcase++,ad); 
	}
	return 0;
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值