3개의 변 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다.
-> 반복에 횟수를 알고 있을 때는 단순히 for반복문을 사용해서 문장을 구성하면 편하지만 사용자가 0 0 0을 언제 입력할지 알 수 없으니 while문을 이용해서 입력이 0 0 0 이 아닐 경우 반복문을 실행하도록 코드를 구성했다.
피타고라스 정리를 기반으로 하여 직각삼각형인지에 대한 유무를 판단하였다. 처음 고민한 부분은 입력 받은 3개의 변수들을 한 번 정렬을 하고 작은 2개의 숫자를 제곱한 것이 가장 큰 수 인 것을 이용하여 풀려고 하였으니 어렵지 않은 문제에서 코드가 너무 길어질 것 같아 잠깐 고민을 하였다. 그래서 그냥 단순하게 조건문 if else를 이용해서 정렬 없이 직각 삼각형인지 아닌지를 판단할 수 있게 코드를 구성했다.
정상 정답!
간단한 문제 같은 경우도 가장 먼저 생각나는 부분이 길고 비효율적인 것도 많이 생각나는데, 만족하지 않고 다른 좋은 방법이 없을까 고민하는 습관이 좋은 것 같다.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int A = 1;
int B = 1;
int C = 1;
while (A != 0 && B != 0 && C != 0)
{
scanf("%d %d %d", &A, &B, &C);
if (A != 0 && B != 0 && C != 0)
{
if ((A * A) + (B * B) == (C * C))
{
printf("right\n");
}
else if ((C * C) + (B * B) == (A * A))
{
printf("right\n");
}
else if ((C * C) + (A * A) == (B * B))
{
printf("right\n");
}
else
{
printf("wrong\n");
}
}
}
}