top1编程
← 返回题目
题解

【入门】三角形类别

1 条题解

  • 0
    @ 2026-7-30 1:33:15

    解题思路

    先把三条边排序,利用三角形条件和勾股定理比较平方和,判断三角形类别。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        long long a, b, c, t;
        cin >> a >> b >> c;
        // 先把三条边从小到大排好,c就是最长边。
        if (a > b) { t = a; a = b; b = t; }
        if (b > c) { t = b; b = c; c = t; }
        if (a > b) { t = a; a = b; b = t; }
        // 两条短边之和不大于最长边时,不能组成三角形。
        if (a + b <= c) cout << "no";
        else if (a * a + b * b == c * c) cout << "zhijiao";
        else if (a * a + b * b > c * c) cout << "ruijiao";
        else cout << "dunjiao";
        // 比较平方和即可判断三角形类别。
        return 0;
    }
    

    复杂度分析

    代码只使用了简单变量、循环和字符串。设输入长度为 n,时间复杂度为 O(n^2)(若有嵌套枚举则按实际循环计算),额外空间复杂度为 O(n)。

    • 1