🔒 문제
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
⌨ 입력
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
🖨 출력
첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
📚 예제
Ex)
150
266
427
3
1
0
2
0
0
0
2
0
0
🔑 c언어 코드
#include<stdio.h>
int main()
{
int n[10] = { 0, }; // 0~9까지 숫자 몇번 쓰였는지 기록하기위한 배열,0으로 초기화
int A, B, C;
scanf("%d %d %d", &A, &B, &C);
int x = A * B * C;
int i, j;
for (i = 0; i < 10; i++) // 각 자리수 숫자 구하려고
{
for(j = 0; j < 10; j++) // 각 자리수 숫자 사용 횟수 카운팅
if (j == x % 10)
{
n[j]++;
break; // 숫자 카운트 되면 break
}
if ((x /= 10) == 0) // 숫자 자릿수 넘어가게 카운팅 안하도록
break;
}
for (i = 0; i < 10; i++)
printf("%d\n", n[i]);
return 0;
}
'BAEKJOON > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ] 1546번 : 평균 (0) | 2022.07.26 |
---|---|
[BOJ] 3052번 : 나머지 (0) | 2022.07.26 |
[BOJ] 2562번 : 최댓값 (0) | 2022.07.25 |
[BOJ] 10818 : 최소, 최대 (0) | 2022.07.25 |
[BOJ] 1110번 : 더하기 사이클 (0) | 2022.07.25 |