c언어

숫자의 개수

pororo 2026. 5. 9. 12:41

세 개의 자연수 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