반응형
[ Contents ]
1. 문제 (링크 참조)
11966번: 2의 제곱인가?
자연수 N이 주어졌을 때, 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
2. 문제 풀이
주어진 수가 2의 제곱인지 판별하는 문제입니다.
간단한 문제지만 실수하기 쉽습니다. 2의 0제곱인 1도 포함되야 하며, 2의 배수 판별과 혼동하면 안됩니다. 2의 제곱이니, 일일이 2를 곱해가며 확인해야 합니다.
3. 코드
# 입력
N = int(input())
# 2의 제곱 판별
num = 1
while True:
# 2의 제곱이면 1 출력
if num == N:
print(1)
break
# 2의 제곱이 아니면 0 출력
elif num > N:
print(0)
break
num *= 2
주어진 수보다 2의 제곱이 커질 때까지 2를 곱합니다. 만약 N과 같아지는 때가 생긴다면, 주어진 수는 2의 제곱입니다.
반응형
'Algorithm' 카테고리의 다른 글
[탐색/BFS] 백준 2644 촌수계산 - 파이썬(Python) (0) | 2022.06.05 |
---|---|
[구현/수학] 백준 2921 도미노 - 파이썬(Python) (0) | 2022.06.04 |
[DP/동적계획법] 백준 1904 01타일 - 파이썬(Python) (0) | 2022.06.02 |
[구현/수학] 백준 2959 거북이 - 파이썬(Python) (0) | 2022.06.01 |
[구현/수학] 백준 10178 할로윈의 사탕 - 파이썬(Python) (0) | 2022.05.31 |
댓글