64센티 막대를 반으로 계속 나누게 된다.
2로 나누면 한 조각이 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1 로 쪼개진다.
이 중에 사용할 조각이 있고, 아닌 조각이 있을 것이다.
x 센티를 만들기 위해 64센티를 이진수로 바꾸면된다.
쪼개진 막대를 사용 할지, 말지 선택하는 것과 같다.
#include <bits/stdc++.h>
using namespace std;
int x, cnt;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> x;
while(x >= 1){
if(x % 2 == 1) cnt++;
x /= 2;
}
cout << cnt;
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
저작권 백준 2914번 c++ (0) | 2022.02.17 |
---|---|
민균이의 비밀번호 백준 9933번 c++ (0) | 2022.02.17 |
수들의 합 백준 1789번 c++ (0) | 2022.02.16 |
좌표 압축 백준 18870번 c++ (0) | 2022.02.16 |
수 정렬하기 2 백준 2751번 c++ (0) | 2022.02.16 |