📄 pku1927.cpp
字号:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, L, A, B, C, sum, area, p, R, r, PI, k, areall;
int t = 0;
PI = acos(-1);
while (scanf("%lf %lf %lf %lf", &a, &b, &c, &L) != 0)
{
if (a == 0 && b == 0 && c == 0 && L == 0)
{
break;
}
sum = a + b + c;
p = sum / 2;
areall = sqrt(p * (p - a) * (p - b) * (p - c));
if (sum <= L)
{
printf("Case %d: %.2lf\n", ++t, areall);
continue;
}
A = acos((b * b + c * c - a * a) / (2 * b * c));
B = acos((a * a + c * c - b * b) / (2 * a * c));
C = acos((b * b + a * a - c * c) / (2 * b * a));
k = 1 / tan (A / 2) + 1 / tan (B / 2) + 1 / tan (C / 2);
R = p / k;
if (R * PI * 2 >= L)
{
printf("Case %d: %.2lf\n", ++t, L * L / (4 * PI));
continue;
}
r = (sum - L) / (2 * k - 2 * PI);
area = areall + PI * r * r - r * r * k;
printf("Case %d: %.2lf\n", ++t, area);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -