반응형
문제 : 세 개의 자연수 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까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
#include<iostream>
using namespace std;
int main()
{
int A, B, C;
int arr[10] = { 0 };
cin >> A >> B >> C;
int result = A * B * C;
while (result != 0)
{
arr[result % 10] += 1;
result /= 10;
}
for (int i = 0;i < 10;i++)
{
cout << arr[i] << endl;
}
return 0;
}
중요 포인트
- A, B, C 곱해진 연산 값의 각 자릿수 파악 및 배열에 결과 대입하기
이 문제의 중요한 구문은 while 문을 구성하는 요소들이다.
우선 arr [10]을 통해 0~9까지 개수가 파악된 수가 담아질 배열을 선언한다.
그리고 arr [result%10]을 통해서 1의 자리 숫자를 파악하는 동시에 1의 자리 숫자가 담길 배열 위치에 동시에 넣는 구문이다.
그 후 result/=10을 통해 다음 자리로 가는 연산을 진행하여 최종적으로 result값이 0으로 도달할 때 멈추도록 구현되었다.
반응형
'프로그래밍 ( Programming ) > 백준 알고리즘 (BaekJoon Algorithm)' 카테고리의 다른 글
1546번 - 평균 ( 백준 알고리즘 / C++ ) (0) | 2020.11.26 |
---|---|
3052번 - 나머지 (백준 알고리즘/C++) (0) | 2020.11.25 |
2562번 - 최댓값(백준 알고리즘 / C++) (0) | 2020.11.23 |
10818번 - 최소, 최대(c++) (0) | 2020.11.23 |
1110번 - 더하기 사이클 ( 백준 알고리즘 문제 풀이 ) (0) | 2020.11.23 |
댓글