<문제>
https://www.acmicpc.net/problem/1094
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대
www.acmicpc.net
<내가 제출한 코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int x,i,cnt=0;
scanf("%d", &x);
for (i = 64; i >= 1; i /= 2) {
if (i <= x) {
x = x - i;
cnt++;
}
}
printf("%d", cnt);
}
주어진 x가 몇개의 2의 제곱수들로 이루어져 있는지 구하는 문제이다.
예를들어 x가 23이라면 16+4+2+1이므로 4가 출력되는 것이다.
그래서 i를 64부터 1까지 2씩 나눠지는 i로 만약 i가 x보다 작거나 같으면 x에서 i를 빼고 카운트(cnt)를 1씩 늘리는 반복문을 만들어 주었다.
마지막엔 cnt를 출력해주었다.
'⌨️ Algorithm > C' 카테고리의 다른 글
2/3 [C] 백준 1312번 - 소수 (0) | 2022.02.03 |
---|---|
1/29 [C] 백준 1316번 - 그룹 단어 체커 (0) | 2022.01.29 |
1/28 [C] 백준 1292번 - 쉽게 푸는 문제 (0) | 2022.01.28 |
1/27 [C] 백준 1158번 - 요세푸스 문제 (0) | 2022.01.27 |
1/27 [C] 백준 1037번 - 약수 (0) | 2022.01.27 |
댓글