문제
접근
문제를 쉽게 보면, 결국 주어지는 n을 2의 제곱수들의 합으로 표현하는 방법 중 가장 적은 항의 개수를 묻는 것이다.
예를 들어, 23은 16+4+2+1로 표현할 수 있고, 이 것보다 짧게 표현하는 것은 불가능하다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
n = int(input())
nowN = 64
ans = 0
while n:
if nowN <= n:
n -= nowN
ans+=1
nowN //= 2
print(ans)