세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에
0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
5월에 스터디 과제로 받았던 문제인데, 내가 가지고 있던 개념만으로는 도저히 해결할 수 없었다.
A B C 를 입력받고 곱까지 구하는 데에는 무리가 전혀 없었으나
해당 곱셈의 결과에서 숫자의 개수를 세기 위해서는
int형으로 도출된 곱셈 결과를 문자열 형태로 저장해야 한다고 생각했다.
그래서 int형 값을 문자열 형태로 저장하는 방법에 대해 생각했다 :
근데 저장을 하려면 어차피 값에서 숫자를 하나씩 떼어내야 하는데
문자열로 저장하지 않고 자리수를 떼어내면서 개수를 셀 수는 없을까?
scanf_s("%d %d %d", &A, &B, &C);
multiple = A * B * C;
multiple = multiple_e;
while (multiple_e > 0) {
num = multiple_e % 10;
numcount[num]++;
multiple_e = multiple_e / 10; }
곱셈 값을 multiple에 저장하고 값을 다른 곳에 옮겨준 뒤 옮겨준 값으로
자릿수를 떼어내는 while문을 작성했는데 일단 실패했다.
코드를 확인해보니 간단한 초기화 과정에 문제가 있어서 수정했다.
scanf("%d", &A);
scanf("%d", &B);
scanf("%d", &C);
multiple = A * B * C;
multiple_e = multiple;
while (multiple_e > 0) {
num = multiple_e % 10;
numcount[num]++;
multiple_e = multiple_e / 10; }
결국 이 코드로 해결되었다!
한 달 전에는 엄청 낑낑댔는데 생각보다 쉽게 해결했다..
'C' 카테고리의 다른 글
[C] 배열 포인터, 포인터 배열 (0) | 2023.10.26 |
---|---|
[C] 포인터와 함수 (0) | 2023.10.26 |
[C] 포인터와 다차원 포인터 (0) | 2023.10.24 |
[C] C의 문자열, 문자 배열 (0) | 2023.10.18 |
[C] 조건 연산자 (삼항 연산자) 백준 2562 (0) | 2023.09.11 |