반응형
A B C를 곱한 값이 x라고 할 때, 0부터 9까지의 숫자가 각각 몇번씩 쓰였는지 확인하는 문제이다.
먼저 입력받는 값을 x, y, z 라 하고 이 값들을 모두 곱한 값을 n에 저장한다
그리고 0부터 9까지 각 수들의 사용 횟수를 세기 위한 배열 a[10]을 생성하고 값을 모두 0으로 초기화해준다.
while문을 이용하여 n을 10으로 나눈 나머지를 임시변수tmp에 저장하고 a[tmp]의 값을 증가시킨다.
n에 다시 n을 10으로 나눈 몫을 저장해두면 12345 -> 1234 -> 123 -> 12 -> 1 순으로 n이 저장된다.
즉 오른쪽부터 하나씩 떨어져나간다.
n의 몫이 더이상 남지않아 n / 10이 0이되면 break문을 이용해 빠져나가고
다시 for문을 사용하여 a[]배열에 저장된 값들을 하나씩 출력해주면 된다.
#include <stdio.h>
int main() {
int x, y, z, n;
int a[10] = { 0,0,0,0,0,0,0,0,0,0 };
int tmp;
scanf_s("%d", &x);
scanf_s("%d", &y);
scanf_s("%d", &z);
n = x * y * z;
while (1) {
tmp = n % 10;
a[tmp]++;
n = n / 10;
if (n == 0)
break;
}
for (int i = 0; i < 10; i++) {
printf("%d\n", a[i]);
}
}
반응형
'C > 백준알고리즘' 카테고리의 다른 글
[C] 백준알고리즘 #1546 평균 (0) | 2021.01.20 |
---|---|
[C] 백준알고리즘 #3052 나머지 (0) | 2021.01.20 |
[C] 백준알고리즘 #2562 최댓값 (0) | 2021.01.19 |
[C] 백준알고리즘 #10818 최소, 최대 (0) | 2021.01.19 |
[C] 백준알고리즘 #1110 더하기 사이클 (0) | 2021.01.18 |