해결방법
do~while문을 이용하여 N을 2로 나눈 나머지가 0이 아니라면 그만하고, 아니라면 계속 나누기를 반복하여 N이 0인지, 아니면 0이 아닌지를 구한다. N이 0이라면 2의 제곱수이고, 아니라면 제곱수가 아니다.
정답 코드
#include <iostream>
using namespace std;
int main()
{
int N, dum;
cin >> N;
do
{
dum = N % 2;
N = N / 2;
} while (dum == 0);
if (N == 0)
cout << "1";
else
cout << "0";
}
'코딩테스트' 카테고리의 다른 글
BOJ - 14935 FA (0) | 2024.09.10 |
---|---|
BOJ - 23627 driip (0) | 2024.09.10 |
BOJ - 10813 공 바꾸기 (0) | 2024.09.09 |
BOJ - 10811 바구니 뒤집기 (0) | 2024.09.09 |
BOJ - 5622 다이얼 (0) | 2024.09.03 |