세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17,037,300 이 되고,
계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
#include <stdio.h>
int main() {
int a, b, c, d;
int cnt[10] = { 0 };
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
d = a * b * c;
for (int i = 0; i < d; i++) {
if (d % 10 == 0) {
cnt[0]++;
}
else if (d % 10 == 1) {
cnt[1]++;
}
else if (d % 10 == 2) {
cnt[2]++;
}
else if (d % 10 == 3) {
cnt[3]++;
}
else if (d % 10 == 4) {
cnt[4]++;
}
else if (d % 10 == 5) {
cnt[5]++;
}
else if (d % 10 == 6) {
cnt[6]++;
}
else if (d % 10 == 7) {
cnt[7]++;
}
else if (d % 10 == 8) {
cnt[8]++;
}
else if (d % 10 == 9) {
cnt[9]++;
}
d /= 10;
}
if (d / 1 == 1) {
cnt[1]++;
}
else if (d / 1 == 2) {
cnt[2]++;
}
else if (d / 1 == 3) {
cnt[3]++;
}
else if (d / 1== 4) {
cnt[4]++;
}
else if (d / 1== 5) {
cnt[5]++;
}
else if (d / 1== 6) {
cnt[6]++;
}
else if (d / 1 == 7) {
cnt[7]++;
}
else if (d / 1 == 8) {
cnt[8]++;
}
else if (d / 1 == 9) {
cnt[9]++;
}
for (int j = 0; j < 10; j++) {
printf("%d\n", cnt[j]);
}
}
처음에 3개의 자연수를 입력받고 입력 받은 자연수들의 곱을 d라는 변수에 저장한뒤
각 자릿수의 1부터9까지의수 중 어떤 값이 알기 위해 for문을 이용하여 각 자릿수를 줄여가며 나머지를 구하여
그 나머지의 수의 따라 각배열의 값을 초기화 한뒤
모든 for문이 끝난뒤 맨 마지막에 일의 자리만 남아있는 값도 세줘야 하기 때문에 for문 바깥에 if문을 이용하여 값을 저장 한뒤 배열에 있는 1부터 9까지의 숫자가 몇번씩 쓰여있는지 하나씩 출력 한다.
'c언어' 카테고리의 다른 글
| 대각선 지그재그 (0) | 2026.05.11 |
|---|---|
| 이진수 (1) | 2026.05.09 |
| 디미고에 가고 싶어! (0) | 2026.05.09 |
| 체육은 수학과목 입니다. (0) | 2026.05.09 |
| 문자열찾기 (0) | 2026.05.09 |