首页 > ACM题库 > HDU-杭电 > HDU 3188-Just A Triangle-计算几何-[解题报告]HOJ
2014
03-06

HDU 3188-Just A Triangle-计算几何-[解题报告]HOJ

Just A Triangle

问题描述 :

  This is an easy problem, just for you to warm up.
  Give you three edges of a triangle. Can you tell me which kind of triangle it stands for?
If it’s a right triangle(直角三角形), please output “good”. If it’s a isosceles triangle(等腰三角形), please output “perfect”. Otherwise, please output “just a triangle”. You may suppose the input is legal.

输入:

The first line contains an integer t means the number of test cases.
The each case contains three integers a, b, c in a line which stands for the length of the three edges.
(0 <a, b, c < 300).

输出:

The first line contains an integer t means the number of test cases.
The each case contains three integers a, b, c in a line which stands for the length of the three edges.
(0 <a, b, c < 300).

样例输入:

4
3 4 5
2 2 3 
1 4 4
4 6 3

样例输出:

good
perfect
perfect
just a triangle

#include <iostream>
using namespace std;

int main()
{
    int n,a,b,c;
    cin >> n;
    while(n--)
    {
        cin >> a >> b >> c;
        if(a+b > c && a+c > b && b+c > a)
        {
            if(a == b || b == c || a == c)
            cout << "perfect" << endl;
            else
            if(a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b )
            cout << "good" << endl;
            else
            cout << "just a triangle" << endl;
        }
    }

    return 0;
}

参考:http://blog.csdn.net/libin56842/article/details/8464741