찰리의 놀이터

(C언어) 숫자의 개수 - 백준 2577번 본문

알고리즘 공부

(C언어) 숫자의 개수 - 백준 2577번

차알리 2021. 4. 21. 16:13

숫자의 개수

시간제한: 1 Sec 메모리제한: 32 MB

제출: 1097 해결: 678

세 개의 자연수 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까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

150

266

427

3

1

0

2

0

0

0

2

0

0

------------------------------------------------------------------문제풀이-------------------------------------------------------

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//¼ýÀÚÀÇ °³¼ö
int arr[10];
int main(void)
{
long long sum = 0;
int i, a, b, c;
scanf("%d %d %d", &a, &b, &c);
sum = a * b * c;
while (1)
{
for (i = 0; i < 10; i++)
{
if (sum % 10 == i)
{
arr[i]++;
sum = sum / 10;
}
}
if (sum < 10)
{
arr[sum]++;
break;
}
}
for (i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
view raw e_2_10.c hosted with ❤ by GitHub