https://www.acmicpc.net/problem/16464
#문제 간단 정리
수학 문제이다
#문제 해결 방법
일단 n (n+1) 로 나눠지면 n-1 n n+1 로 해결이 가능한데
불가능한 경우는 2의 거듭제곱으로 구성되는 경우밖에 없다
2의 거듭제곱은 완벽한 대칭이기때문에 n n+1 로 분할 할 수 가없다
즉 2의 거듭제곱인지만 확인해주면 된다
#전체 코드
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
long long N;
cin >> N;
bool canWin = false;
while (N != 1) {
if (N % 2 == 1) {
canWin = true;
break;
}
N /= 2;
}
if (canWin) {
cout << "Gazua" << endl;
} else {
cout << "GoHanGang" << endl;
}
}
return 0;
}
'[백준] > C++' 카테고리의 다른 글
백준 16692번 Greedy Scheduler [C++] (0) | 2024.08.27 |
---|---|
백준 30617번 Knob [C++] (0) | 2024.08.26 |
백준 18243번 Small World Network [C++] (0) | 2024.08.26 |
백준 19554번 Guess the number [C++] (0) | 2024.08.25 |
백준 17610번 양팔저울 [C++] (0) | 2024.08.25 |