-
백준 11170번 : 0의 개수(C 언어)c c++ 언어 공부 2023. 8. 29. 12:52
https://www.acmicpc.net/problem/11170
11170번: 0의 개수
N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.
www.acmicpc.net
Code:
123456789101112131415161718192021222324252627282930#include <stdio.h>int main() {int t;scanf("%d", &t);int n, m;int cnt = 0;while (t--){int count = 0;scanf("%d %d", &n, &m);if (n == 0){count++;}for (int i = n; i <= m; i++){cnt = i;while (cnt > 0){if (cnt % 10 == 0){count++;}cnt /= 10;}}printf("%d\n", count);}}cs 문제 설명:
이 문제는 주어진 범위 내에서 숫자 0이 나타나는 횟수를 세는 프로그램을 작성하는 것입니다. 주어진 범위는 N부터 M까지이며, 각 테스트 케이스마다 결과를 출력해야 합니다. 예를 들어, N=0, M=10 인 경우, 0부터 10까지의 숫자를 종이에 적었을 때, 0이 총 2번 나타나므로 답은 2가 됩니다.
코드 설명:
- 먼저, 테스트 케이스의 수 t를 입력받습니다.
- t번의 반복을 통해 각 테스트 케이스를 처리합니다.
- 각 테스트 케이스에서, 시작 숫자 n과 끝 숫자 m을 입력받습니다.
- 만약 시작 숫자 n이 0인 경우, 0이 하나 나타났으므로 count 변수를 1로 초기화합니다.
- 그런 다음, n부터 m까지의 범위에서 각 숫자에 대해 0의 개수를 세는 작업을 수행합니다. 숫자를 자릿수별로 분해하고, 분해한 각 자릿수가 0인지 확인하여 0의 개수를 누적합니다.
- 각 테스트 케이스의 결과인 count를 출력합니다.
이렇게 하면 각 테스트 케이스에 대해 0의 개수를 찾고 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 16931번 : 겉넓이 구하기 (C 언어) (0) 2023.08.30 백준 5635번 : 생일 (C 언어) (0) 2023.08.30 백준 14495번 : 피보나치 비스무리한 수열(C 언어) (0) 2023.08.29 백준 15624번 : 피보나치 수 7(C 언어) (0) 2023.08.28 백준 16212번 : 정열적인 정렬 (C 언어) (0) 2023.08.28