반응형
0~9개가 각각 몇 개인지 저장할 배열 count를 만든다. (배열값들 0으로 초기화)
int A,B,C를 입력받고 long mult 변수에 곱셈결과를 저장한다.
이제 mult>0 를 만족하는 동안, mult%10 을 구한 뒤 mult 를 10으로 나눠주는 과정을 반복한다.
mult%10 이 0~9 중 무엇인지 switch문을 통해서 판단 후 배열의 해당되는 원소 값을 증가시켜준다.
ex) mult%10 == 1 이면 count[1]++, mult%10 == 5 면 count[5]++. mult/=10 후 앞의 과정 반복.
mult 가 다 나눠지고 0이 되면 count 배열의 원소들을 차례대로 출력한다.
#include <iostream>
using namespace std;
int main()
{
int A = 0, B = 0, C = 0;
long mult = 0;
int* count = new int[10];
for (int i = 0; i < 10; i++) count[i] = 0;
cin >> A >> B >> C;
mult = A * B * C;
while (mult > 0) {
long re = mult % 10;
mult /= 10;
switch (re)
{
case 0:
count[0]++;
break;
case 1:
count[1]++;
break;
case 2:
count[2]++;
break;
case 3:
count[3]++;
break;
case 4:
count[4]++;
break;
case 5:
count[5]++;
break;
case 6:
count[6]++;
break;
case 7:
count[7]++;
break;
case 8:
count[8]++;
break;
case 9:
count[9]++;
break;
}
}
cout << count[0] << '\n' << count[1] << '\n' << count[2] << '\n' << count[3] << '\n' << count[4] << '\n'
<< count[5] << '\n' << count[6] << '\n' << count[7] << '\n' << count[8] << '\n' << count[9] << endl;
return 0;
}
반응형
'Training > BOJ' 카테고리의 다른 글
[C++] 8958 OX퀴즈 (0) | 2020.08.03 |
---|---|
[C++] 3052 나머지 (0) | 2020.08.03 |
[C++] 2562 최댓값 (1) | 2020.08.03 |
[C++] 11720 숫자의 합 (0) | 2020.07.20 |
[C++] 2439 별 찍기 - 2 (0) | 2020.07.20 |