프로그래밍/CodeUp
CodeUp[Q_2012] : 1의 개수는? 2
조원일
2020. 2. 10. 18:42
728x90
1. 문제
https://codeup.kr/problem.php?id=2012
1의 개수는? 2
구글 입사 시험으로 1 ~ 1,000,000까지 1의 개수를 묻는 문제가 나온적이 있다. 이중 for문을 배웠으니 이 문제를 일반화 시켜 문제를 풀어보자. 시작 수 a와 마지막 수 b가 주어지면 a부터 b까지의 수 중 1이 몇 번 들어 있는지 세는 프로그램을 작성하시오. (숫자의 어느 위치에든 1이 있으면 개수를 센다) 예) 9 13 ----> 5번 ( 10, 11, 12, 13 : 11은 두번으로 계산) 110 113 ----> 9번 ( 110,
codeup.kr
[출처 : 코드업(https://codeup.kr/)]
이번 문제는 a ~ b 범위에서 1의 개수를 더해주는 문제입니다.
Q_2011를 이용하면 쉽게 해결할수있습니다.
2. 해답
#include <stdio.h>
int f(int n) {
int c = 0;
while (n != 0) { // 각 자리수마다 1숫자가 있는지 확인
if (n % 10 == 1) c++;
n /= 10;
}
return c; // 1의 개수를 리턴
}
int main() {
int a, b;
int sum = 0;
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++) {
sum += f(i);
}
printf("%d", sum);
return 0;
}