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

+ Recent posts