거창하게 써있지만 결국은 X를 이진수로 변환했을 때의 1의 개수를 묻는 문제이다.
64를 계속 반으로 쪼갠다는 데에서 눈치챘다 하하
이진수로 변환할 때는 항상 변환 함수를 손수 만드느라 귀찮아는데
bitset을 사용하면 이진수로 바꿔주고 1의 개수마저 카운트해준다 이야…
bitset도 공부하고 좋은 경험이었다 C++만세
#include <iostream>
#include <bitset>
using namespace std;
int main() {
int X;
cin >> X;
cout << bitset<7>(X).count() << endl; // 최초의 막대의 길이가 64이기 때문에 7으로 설정
return 0;
}