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

直角三角形判斷:勾股定理與三角形不等式的綜合應用

     編輯:關於C語言

問題描述

輸入 n 組三邊長,判斷每組是否能構成直角三角形。輸出 1 表示能,0 表示不能。三邊為正整數。

判斷條件

  1. 三邊均大於 0
  2. 滿足三角形不等式:任意兩邊之和大於第三邊
  3. 滿足勾股定理:a²+b²=c² 或 a²+c²=b² 或 b²+c²=a²

代碼實現

#include <stdio.h>

int main() {
    int n, a, b, c;
    scanf("%d", &n);

    while (n--) {
        scanf("%d %d %d", &a, &b, &c);

        int valid = 0;
        if (a > 0 && b > 0 && c > 0) {
            if (a + b > c && b + c > a && a + c > b) {
                if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
                    valid = 1;
            }
        }
        printf("%d", valid);
        if (n > 0) printf("\n");
    }
    return 0;
}

優化技巧

先排序三邊 (a≤b≤c),則只需檢查 a+b>c 且 a²+b²=c²,減少比較次數。

測試樣例

輸入:

2
3 4 5
5 6 1

輸出:

1
0

3-4-5 經典勾股數;5-6-1 不滿足三角形不等式(1+5<6)。

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