码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 10522 - Height to Area(计算几何)

时间:2015-03-27 22:17:09      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

这题就海伦公式带进去就可以了。。

要注意的是,这题的样例,是输入n次错误的输入才停止。。,输入的可能是负数。

代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

const double eps = 1e-8;

int t;
double Ha, Hb, Hc;

int dcmp(double x) {
    if (fabs(x) < eps) return 0;
    else return x < 0 ? -1 : 1;
}

int main() {
    scanf("%d", &t);
    while (t) {
        scanf("%lf%lf%lf", &Ha, &Hb, &Hc);
        double a = 2 / Ha, b = 2 / Hb, c = 2 / Hc;
        double p = (a + b + c) / 2;
        double tmp = p * (p - a) * (p - b) * (p - c);
        if (dcmp(Ha) <= 0 || dcmp(Hb) <= 0 || dcmp(Hc) <= 0 || dcmp(tmp) <= 0) {
            t--;
            printf("These are invalid inputs!\n");
            continue;
        }
        double ans = 1.0 / sqrt(tmp);
        printf("%.3f\n", ans);
    }
    return 0;
}


UVA 10522 - Height to Area(计算几何)

标签:

原文地址:http://blog.csdn.net/accelerator_/article/details/44682365

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!