Posted on 2008-08-29 20:05
Hero 阅读(103)
评论(0) 编辑 收藏 引用 所属分类:
代码如诗--ACM
1 //Accepted ZJU 1439 C++ 00:00.10 404K
2
3 //内切圆与外切圆半径计算
4
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <math.h>
9
10 double inp[10] ;
11 double a, b, c ;
12
13 double fdist( double x1, double y1, double z1, double x2, double y2, double z2 )
14 {
15 return sqrt( (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2) ) ;
16 }
17
18 double farea3( double a, double b, double c )
19 {
20 double p = ( a+b+c ) / 2 ; return sqrt( p*(p-a)*(p-b)*(p-c) ) ;
21 }
22
23 int main()
24 {
25 while( scanf( "%lf%lf%lf%lf%lf%lf%lf%lf%lf", &inp[1],&inp[2],&inp[3],&inp[4],&inp[5],&inp[6],&inp[7],&inp[8],&inp[9] ) != EOF )
26 {
27 a = fdist( inp[1], inp[2], inp[3], inp[4], inp[5], inp[6] ) ;
28 b = fdist( inp[1], inp[2], inp[3], inp[7], inp[8], inp[9] ) ;
29 c = fdist( inp[7], inp[8], inp[9], inp[4], inp[5], inp[6] ) ;
30
31 double area = farea3( a, b, c ) ;
32 double r = area * 2 / (a+b+c) ;
33 double R = (a*b*c)/(4*area) ;
34
35 printf( "%0.3lf\n", (r*r)/(R*R) ) ;
36 }
37
38 return 0 ;
39 }