[Baekjoon] Class2 23 - 직각삼각형 [4153]
직각삼각형 [4153번]
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 “right”, 아니라면 “wrong”을 출력한다.
생각해볼점
단순하게 직각삼각형의 조건(가장 긴 변의 제곱이 나머지 두 변의 제곱의 합과 같음)을 따졌다.
다만 이렇게 할 경우 주어진 수의 범위 내에서 변수 check
의 값이 int
형 범위를 넘어가므로 unsigned int
형을 사용해야한다.
코드 구현
#include <stdio.h>
int main()
{
unsigned int a, b, c, check, max;
while (1)
{
scanf("%d %d %d", &a, &b, &c);
if (c == 0)
break;
check = a * a + b * b + c * c;
max = 0;
if (a > max)
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
if (check - max * max * 2 == 0)
printf("right\n");
else
printf("wrong\n");
}
return (0);
}