<답안>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int array[3];
bool end = false;
cin>>array[0]>>array[1]>>array[2];
while(!end)
{
sort(array,array+3);
if(array[2]*array[2] == array[0]*array[0] + array[1]*array[1])
{
cout<<"right\n";
}
else
cout<<"wrong\n";
cin>>array[0]>>array[1]>>array[2];
for(int i=0; i<3; i++)
{
if(array[i] != 0)
break;
else
{
if(i == 2)
end = true;
}
}
}
return 0;
}
<설명>
입력받은 숫자를 오름차순으로 정렬한 뒤,
가장 큰 숫자의 제곱이 나머지 두 숫자의 제곱의 합과 같다면 right
같지 않다면 wrong을 출력한다
새로 입력을 받아 인덱스 i를 0부터 2까지 증가시키며
만약 array[i] 값이 0이 아닌경우는 break로 나와 다음숫자를 입력받는다
0인경우 중에 i가 2인 경우는 세번째까지 0이므로 전체 while문 탈출을 위한 end 값을 true로 바꾼다
'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글
백준 1002번 (C++) (0) | 2020.09.01 |
---|---|
백준 3053번 (C++) (0) | 2020.09.01 |
백준 3009번 (C++) (0) | 2020.08.30 |
백준 1085번 (C++) (0) | 2020.08.30 |
백준 9020번 (C++) (0) | 2020.08.30 |