문제
N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라.
예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.
풀이
더보기
N,M 을 입력받아 N 부터 M까지 하나하나씩 0의 개수를 센다 . cnt =0
find_zero 함수를 만들어 num을 10으로 나눈 나머지가 0이면 0의 개수를 하나 추가한다.
num 을 10으로 나누는 과정을 반복하여 위와 같은 방식으로 십의 자리, 백의자리 ... 를 확인한다.
코드
더보기
# include <stdio.h>
int find_zero(int num, int* cnt);
int main() {
int T, N, M;
scanf("%d", &T);
for (int i = 0; i < T; i++) {
scanf("%d%d", &N, &M);
int cnt = 0;
for (int j = N ; j < M + 1 ; j++) {
find_zero(j, &cnt);
}
printf("%d\n", cnt);
}
}
int find_zero(int num, int * cnt) {
if (num == 0) (*cnt)++;
while (num != 0) {
if (num % 10 == 0) {
*cnt += 1;
}
num = num / 10;
}
return 0;
}
'Koala - 2기 > C반' 카테고리의 다른 글
[13301] 타일 장식물 - 20200118(2) (0) | 2021.01.18 |
---|---|
[2748] 피보나치 수 2 - 20200118(1) (0) | 2021.01.18 |
[C++] sort 함수 내림차순, 내맘대로 정렬 (+DNA, 2017 아주대학교 프로그래밍 경시대회 (Large) 풀이) (0) | 2021.01.18 |
백준 7568번 덩치 // 송수헌 (0) | 2021.01.14 |
KOALA - C반 출석부 (0) | 2021.01.12 |