세 개의 자연수 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번 쓰였다.
‘number_box’ 라는 배열을 만들어 result의 각 자릿수에 있는 숫자에 따라 해당 번호의 배열칸이 1 증가하도록 설계했다.
예를 들어, result의 첫 자리에 해당하는 수가 7이라 할때, number_box[7]을 1 증가시키도록 하였다.
string은 char가 연속으로 모인 클래스이기에 배열식 접근과 iterator 접근, 클래스 내 함수 접근이 가능했다.
그렇기에 배열 접근을 통해 자릿수에 해당하는 값을 불러왔고, char 형이기에 0의 아스키 코드를 빼주었다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int a = 0, b = 0, c = 0;
cin >> a;
cin >> b;
cin >> c;
int result = a * b * c;
string str_result = to_string(result);
int number_box[10] = {0,};
for (int i = 0; i < str_result.size(); i++)
{
int k = str_result[i] - '0';
number_box[k]++;
}
for (int i = 0; i < 10; i++)
{
cout << number_box[i] << endl;
}
return 0;
}