首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

NYOJ 659 判斷三角形:邊長關系判定類型並計數

     編輯:C++ 入門

問題描述

輸入 T 組測試數據,每組三邊長 a,b,c。判斷能否構成三角形:
- 不能 → 輸出 "NO"
- 能 → 至少 1 個 "YE"(普通三角形)
若等腰 → 額外 1 個 "YE"
若等邊 → 再額外 1 個 "YE"
輸出格式:`Case #i:` 換行,然後按空格分隔輸出 "YE" 或 "NO"。

判斷邏輯

  1. 三角形不等式:任意兩邊之和 > 第三邊(等價於排序後最小兩邊之和 > 最大邊)。
  2. 等腰:至少兩邊相等。
  3. 等邊:三邊全等(隱含等腰)。

代碼實現


#include 
int main() {
    int T; scanf("%d",&T);
    for (int cs=1; cs<=T; ++cs) {
        int a,b,c; scanf("%d%d%d",&a,&b,&c);
        printf("Case #%d:\n", cs);
        if (a+b<=c || a+c<=b || b+c<=a) { puts("NO"); continue; }
        printf("YE");
        if (a==b && b==c) printf(" YE YE");
        else if (a==b || a==c || b==c) printf(" YE");
        puts("");
    }
    return 0;
}

樣例驗證

3 3 2 → 能構成,等腰 → "YE YE"
5 2 1 → 2+1<5 不能構成 → "NO"

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved