입력 코드
#include <stdio.h>
main(){
int n, cnt=0;
scanf("%d", &n);
while(n>0){
if(n%2==1)
cnt++;
n/=2;
}
printf("%d", cnt);
return 0;
}
코드 설명
#수학 #비트마스킹
참고
[BOJ] 백준 1094번 "막대기" C언어 풀이
이 문제는 64이하의 자연수를 2진수로 나타 내었을 때 1의 개수를 묻는 문제입니다. 막대를 반으로만 자른다는점, 그리고 각각 다른 크기의 막대를 붙여서 다른 수를 표현한다는데 최소개수를
hacerrumbo.tistory.com
문제 출처
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대
www.acmicpc.net
'C' 카테고리의 다른 글
#105. [백준_C언어] 6603 : 로또 \ 백트래킹 (0) | 2021.03.07 |
---|---|
#104. [백준_C언어] 10974 : 모든 순열 \ 브루트포스 알고리즘 (0) | 2021.03.07 |
#102. [백준_C언어] 11723 : 집합 \ 비트마스킹 (0) | 2021.02.27 |
#101. [백준_C언어] 15649 : N과 M (1) \ 백트래킹 (0) | 2021.02.26 |
#100. [백준_C언어] 14888 : 연산자 끼워넣기 \ 백트래킹 (0) | 2021.02.26 |