문제 설명

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

세 개의 자연수 a, b, c를 곱하여 나온 결과에 0 ~ 9까지의 숫자가 각각 몇 번씩 쓰였는지 구하기

 

문제 풀이법

세 개의 자연수는 각각 100 ~ 999의 범위를 가지고 있다

따라서 이 3개의 수를 곱하면 int형의 범위는 넘을 것이므로 충분히 long long형을 선언하여 a * b * c 값을 넣어줌

10씩 나누면서 각 숫자가 몇번 나왔는지 배열에 저장 후 출력

 

소스 코드

#include <iostream>

using namespace std;

int main()
{
    int a, b, c;
    long long num;
    int arr[10] = { 0 };
    
    cin >> a >> b >> c;
    
    num = a * b * c;

    while (num > 10)
    {
        arr[num % 10]++;
        num /= 10;
    }
    arr[num]++;
    
    for (int i = 0; i < 10; i++)
    {
        printf("%d\n", arr[i]);
    }
    
    return 0;
}
복사했습니다!