- 论坛徽章:
- 7
|
本帖最后由 rubyish 于 2013-10-07 18:56 编辑
How about this :
- #!/usr/bin/perl
- sub Ailsa {
- my $PI = 3.1415926535897;
- map {
- my ( $A, $B, $C ) = @_[@$_];
- my $I = ( $A**2 + $B**2 - $C**2 ) / ( 2 * $A * $B );
- sprintf "%.2f", 180 / $PI * atan2 sqrt( 1 - $I**2 ), $I;
- }[ 2, 1, 0 ], [ 0, 2, 1 ], [ 1, 0, 2 ];
- }
- print grep s/$/"\t[ " . join( ', ', Ailsa split ). ' ]'/e, <DATA>;
- __DATA__
- 3 4 5
- 5 5 5
- 5 6 7
- 5 5 6
- 6 6 3
复制代码- 3 4 5 [ 36.87, 53.13, 90.00 ]
- 5 5 5 [ 60.00, 60.00, 60.00 ]
- 5 6 7 [ 44.42, 57.12, 78.46 ]
- 5 5 6 [ 53.13, 53.13, 73.74 ]
- 6 6 3 [ 75.52, 75.52, 28.96 ]
复制代码 |
|