Written by JS970
on
on
1094 - 막대기
- 난이도: 실버 5
- 날짜: 2022년 10월 31일
- 상태: Correct
- 추가 검토 여부: No
solution
- 입력값을 저장하는 변수 X를 설정한다.
- 반복문을 이용하여 X에서 2의 거듭제곱 값들 중 입력값보다 작거나 같은 값 중 가장 큰 값을 삔다.
- 반복문에서 한번 값을 뺀 후에는 count를 1만큼 증가시키고 continue를 이용해 반복문의 끝으로 이동한다.
- X 가 0이 될 경우의 count값이 정답 출력이다.
code
#include <iostream>
using namespace std;
int main()
{
int X, cnt = 0;
cin >> X;
while(X)
{
if (X==64)
{
X = X-64;
cnt++;
}
else if (X>=32)
{
X = X-32;
cnt++;
continue;
}
else if (X>=16)
{
X = X-16;
cnt++;
continue;
}
else if (X>=8)
{
X = X-8;
cnt++;
continue;
}
else if (X>=4)
{
X = X-4;
cnt++;
continue;
}
else if (X>=2)
{
X = X-2;
cnt++;
continue;
}
else
{
X = X-1;
cnt++;
continue;
}
}
cout << cnt << endl;
return 0;
}