题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1294
| input | output |
|---|---|
4 7 5 7 |
Distance is 5385 km. |
题意:
在一个圆上有有固定顺序的四点,告诉你AD AC BD BC的距离,求 CD的距离!
PS:
//同圆中相等弦所对的圆心角相等
代码如下:
#include <cstdio>
#include <cmath>
//同圆中相等弦所对的圆心角相等
int main()
{
int ad, ac, bd, bc;
while(~scanf("%d%d%d%d",&ad,&ac,&bd,&bc))
{
if(ad*ac == bd*bc)//分母相等,相减为零
{
printf("Impossible.\n");
continue;
}
//余弦定理化简得:
double t1 = (ad*ad+ac*ac)*2.0*bd*bc-(bd*bd+bc*bc)*2.0*ad*ac;
double t2 = 2*bd*bc-2*ad*ac;
double tt = t1*1.0/t2;
if(tt < 0)
{
printf("Impossible.\n");
}
else
{
tt = sqrt(tt);
printf("Distance is %.0lf km.\n",tt*1000);
}
}
return 0;
}
URAL 1294. Mars Satellites(余弦定理 数学啊 )
原文地址:http://blog.csdn.net/u012860063/article/details/44131149