题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4386
2 1 1 1 1 1 2 3 4
Case 1: 1.000000 Case 2: 4.898979
题意:
给出四条边的长度,求是否能形成四边形。假设能形成求最大面积。
PS:
四边形最大面积:
L = (A+B+C+D)/2;
AREA = sqrt((L-A) * (L-B)*(L-C)*(L-D));
代码例如以下:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int t;
int cas = 0;
scanf("%d",&t);
while(t--)
{
int a[4];
for(int i = 0; i < 4; i++)
{
scanf("%d",&a[i]);
}
sort(a,a+4);
int sum = a[0]+a[1]+a[2];
if(sum <= a[3])
{
printf("Case %d: -1\n",++cas);
continue;
}
double p = (a[0]+a[1]+a[2]+a[3])/2.0;
double area = sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3]));
printf("Case %d: %.6lf\n",++cas,area);
}
return 0;
}原文:http://www.cnblogs.com/jzssuanfa/p/6897708.html