这是一道结论题:
求具有外接圆的四边形ABCD的面积:
p = (a + b + c + d) / 2;
S = sqrt((p-a) * (p-b) * (p-c) * (p-d));
形象解释:就像吹气球一样,如果要想尽量吹多一些,就要更加“圆”一些。
猜想:是不是对于五边形也有同样的道理???请大神指点。
考虑:从公式来看,为什么和abcd的安排顺序无关???请大神指点。
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
double cal(double a, double b, double c, double d) {
double p = (a + b + c + d) / 2;
return sqrt((p-a) * (p-b) * (p-c) * (p-d));
}
int main() {
int T;
//bool flag;
int a, b, c, d;
scanf("%d", &T);
for(int cas = 1; cas <= T; cas++) {
//flag = false;
scanf("%d%d%d%d", &a, &b, &c, &d);
int maxx = max(max(a, b), max(c, d));
if(maxx >= (a + b + c + d - maxx)) {
printf("Case %d: ", cas);
printf("-1\n");
continue;
}
printf("Case %d: ", cas);
printf("%.6lf\n", cal(a, b, c, d));
}
return 0;
}