1094번: 막대기
2022. 4. 3. 13:56ㆍC언어/백준
-Silver 5
https://www.acmicpc.net/problem/1094
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대
www.acmicpc.net
-결과
-코드
#include <stdio.h>
int main()
{
int i, x, y;
int sum = 0;
scanf("%d", &x);
for(i=0; x>0; i++)
{
y = x % 2;
x = x / 2;
sum += y;
}
printf("%d", sum);
}
-풀이
먼저 정수를 입력받기 위해 scanf함수와 정수형 변수 x를 사용한다.
그 후 for문을 통해 입력받은 정수가 자연수일 경우로 조건을 제한해서 실행문을 실행하게 한다.
정수형 변수 y에 x를 2로 나눈 나머지를 저장하고, y를 sum에 더한다.
이 문제는 64보다 작은 자연수를 2진수로 바꿨을 때 나타나는 1의 개수를 묻는 문제이다.
y에 저장될 수 있는 수는 2로 나누었기 때문에 0과 1뿐이고, 그걸 sum에 더하므로 1의 개수를 알 수 있게 짠 코드이다.
'C언어 > 백준' 카테고리의 다른 글
1436: 영화감독 숌 (0) | 2022.05.01 |
---|---|
1181: 단어 정렬 (0) | 2022.05.01 |
1018: 체스판 다시 칠하기 (0) | 2022.05.01 |
10773: 제로 (0) | 2022.04.03 |
9012: 괄호 (0) | 2022.04.03 |