top1编程
← 返回题目
题解

三角形的人工湖

1 条题解

  • 0
    @ 2026-8-4 9:54:08

    解题思路

    等腰三角形有两个要求,都要满足:

    1. 能构成三角形:任意两边之和大于第三边。
    2. 有两条边相等。

    先用逻辑判断两边之和是否都大于第三边(a+b>c 且 a+c>b 且 b+c>a),再判断是否有任意两边相等。两个条件同时满足才输出 YES。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int a, b, c;
        cin >> a >> b >> c;
        // 先判断能否构成三角形:任意两边之和大于第三边
        int tri = (a + b > c) && (a + c > b) && (b + c > a);
        // 再判断是否有两条边相等
        int iso = (a == b) || (b == c) || (a == c);
        if (tri && iso) cout << "YES" << endl;
        else cout << "NO" << endl;
        return 0;
    }
    

    复杂度分析

    只做常数次比较,时间复杂度 O(1),额外空间复杂度 O(1)。

    • 1