본문 바로가기
프로그래밍/CodeUp

CodeUp[Q_2012] : 1의 개수는? 2

by 조원일 2020. 2. 10.
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;
}

'프로그래밍 > CodeUp' 카테고리의 다른 글

CodeUp[Q_2016] : 천단위 구분기호  (0) 2020.02.18
CodeUp[Q_2013] : 화학식량 구하기  (0) 2020.02.17
CodeUp[Q_2011] : 369 게임 2  (0) 2020.02.10
CodeUp[Q_2010] : 루트 문제(?)  (0) 2020.02.09
CodeUp[Q_2009] : 아메리카노  (0) 2020.02.09