题解
三角形的人工湖
1 条题解
-
0
解题思路
等腰三角形有两个要求,都要满足:
- 能构成三角形:任意两边之和大于第三边。
- 有两条边相等。
先用逻辑判断两边之和是否都大于第三边(
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