[C] 4153번: 직각삼각형
[C] 4153번: 직각삼각형

문제
https://www.acmicpc.net/problem/4153
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 “right”, 아니라면 “wrong”을 출력한다.
풀이
직각삼각형인지 확인하려면 가장 긴 변을 빗변으로 두고 피타고라스 정리를 확인하면 됩니다.
그래서 세 변을 오름차순으로 정렬한 뒤,
를 만족하는지 검사하면 됩니다.
입력이 0 0 0이면 종료합니다.
코드
#include <stdio.h>
int main() { int a, b, c;
while (1) { scanf("%d %d %d", &a, &b, &c); if (a == 0 && b == 0 && c == 0) { break; }
if (a > b) { int temp = a; a = b; b = temp; } if (b > c) { int temp = b; b = c; c = temp; } if (a > c) { int temp = a; a = c; c = temp; }
if (a * a + b * b == c * c) { printf("right\n"); } else { printf("wrong\n"); } }
return 0;}