輸入 n 組三邊長,判斷每組是否能構成直角三角形。輸出 1 表示能,0 表示不能。三邊為正整數。
#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)。