识别三角形-题解

描述

输入三个正整数,判断能否构成三角形的三边,如果不能,输出“NO”。如果能构成三角形,判断构成什么三角形?按等边、等腰、直角、一般三角形分类,依次输出对应的三角形类型Equilateral、Isosceles、Right、General。

等边:三条边均相等

等腰:任意两条边相等

直角:满足aa+bb = c*c,其中a,b,c为三条边的长度

输入描述

输入正整数a,b,c,表示三角形的三条边长,每个数之间以一个空格隔开。1<=a,b,c<=10000

输出描述

输出对应三角形的类型

如果不能构成三角形,输出NO
如果是等边三角形输出Equilateral
如果是等腰三角形输出Isosceles
如果是直角三角形输出Right
其他三角形则输出General
同时满足多个,则按照顺序输出最靠前的一个即可

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>
using namespace std;

int main() {
int a, b, c;
cin >> a >> b >> c;
int tmp[3] = {a, b, c};
sort(tmp, tmp + 3);
a = tmp[0];
b = tmp[1];
c = tmp[2];
if (a + b <= c) {
cout << "NO";
return 0;
}
if (a == b && b == c) {
cout << "Equilateral";
} else if (a == b || b == c || a == c) {
cout << "Isosceles";
} else if (a * a + b * b == c * c) {
cout << "Right";
} else {
cout << "General";
}
return 0;
}

识别三角形-题解
https://chenxi-tijie.pages.dev/2025/07/识别三角形-题解/
作者
chenxi
发布于
2025年7月2日
许可协议