Run ID:149034

提交时间:2026-03-06 18:45:03

#include <iostream> #include <algorithm> // 用于排序 using namespace std; int main() { int a, b, c; cin >> a >> b >> c; // 第一步:判断能否构成三角形(边长>0 且 任意两边和大于第三边) if (a <= 0 || b <= 0 || c <= 0 || a + b <= c || a + c <= b || b + c <= a) { cout << "No" << endl; return 0; } // 第二步:判断三角形类型(优先级:等边 > 直角 > 等腰 > 一般) // 等边三角形 if (a == b && b == c) { cout << "Equilateral Triangle" << endl; } else { // 排序,方便判断直角三角形(c为最长边) int x = a, y = b, z = c; sort(&x, &z + 1); // 排序后 x <= y <= z // 直角三角形(勾股定理:x² + y² = z²) if ((long long)x * x + (long long)y * y == (long long)z * z) { cout << "Right Triangle" << endl; } // 等腰三角形(排除等边后,有两边相等) else if (a == b || a == c || b == c) { cout << "Isosceles Triangle" << endl; } // 一般三角形 else { cout << "Simple Triangle" << endl; } } return 0; }