算法竞赛入门经典ch_1_practice6判断三角形(c++)

输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。 如果
可以,则输出yes,如果不能,则输出no。 如果根本无法构成三角形,则输出not a triangle。

判断三角形成立的条件:
- 两边之和大于第三边
- 两边之差小于第三边

#include "stdio.h"
#include <cmath>

int main()
{
    int a,b,c;
    scanf("%d%d%d", &a, &b, &c);
    if (a + b <= c || abs(a - b) >=c)
    {
        printf("not a triangle\n");
        return 0;
    }
    if (a + c <= b || abs(a - c) >=b)
    {
        printf("not a triangle\n");
        return 0;
    }
    if (c + b <= a || abs(c - b) >=a)
    {
        printf("not a triangle\n");
        return 0;
    }

    if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
        printf("yes\n");
    else
        printf("no\n");

    return 0;
}
posted @ 2017-02-23 22:38  ssh_alitheia  阅读(413)  评论(0编辑  收藏  举报