본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 11966 2의 제곱인가?

 

 

Baekjoon Online Judge

 

11966번: 2의 제곱인가?

자연수 N이 주어졌을 때, 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

[문제]

자연수 N이 주어졌을 때, 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오.

 

 

[입력]

첫째 줄에 N(1 ≤ N ≤ 2^30)이 주어진다.

 

 

[출력]

N이 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오.

 

 


 

[코드]

#include <iostream>
using namespace std;

int main()
{
    int N, sum = 1;

    cin >> N;

    if (N == 1)
    {
        cout << 1 << '\n';
        return 0;
    }

    while (sum < N)
        sum *= 2;

    if (sum == N)
        cout << 1 << '\n';
    else
        cout << 0 << '\n';

    return 0;
}