📄 1927.txt
字号:
#include <stdio.h>
#include <math.h>
const double pi = 3.1415926535898;
const double eps = 1e-7;
int main()
{
int k = 1;
double l1, l2, l3, s, c, p, R, ctg1, ctg2, ctg3, len, r, ls, area;
while( 1 )
{
scanf( "%lf%lf%lf%lf", &l1, &l2, &l3, &len );
if( l1 == 0 && l2 == 0 && l3 == 0 && len == 0 )
break;
c = l1 + l2 + l3;
p = ( l1 + l2 + l3 ) / 2;
s = sqrt( p * (p-l1) * (p-l2) * (p-l3) );
if( len >= c )
{
printf( "Case %d: %.2lf\n", k++, s );
continue;
}
R = s * 2 / c ;
if( len <= R * 2 * pi )
{
printf( "Case %d: %.2lf\n", k++, len*len / (4*pi) );
continue;
}
ctg1 = ( p - l1 ) / R;
ctg2 = ( p - l2 ) / R;
ctg3 = ( p - l3 ) / R;
r = ( c - len ) / ( 2 * ( ctg1 + ctg2 + ctg3 ) - 2 * pi );
ls = c - 2 * ( ctg1 + ctg2 + ctg3 ) * r;
l1 -= ( ctg2 + ctg3 ) * r;
l2 -= ( ctg1 + ctg3 ) * r;
l3 -= ( ctg1 + ctg2 ) * r;
p = ( l1 + l2 + l3 ) / 2;
area = ls * r + sqrt( p * (p-l1) * (p-l2) * (p-l3) ) + r * r * pi;
printf( "Case %d: %.2lf\n", k++, area );
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -