#11. 백준 2588번 문제 풀이: 곱셈 문제 원본 보기
세자리수 x 세자리수 곱셈 과정값 표시해 보기 (1),(2) 위치 값 입력받고, (3)~(6) 위치값 출력하기 472 (1) x 385 (2) ------ 2360 (3) 3776 (4) 1416 (5) ------ 181720 (6)
입력/출력
--입력--
472
385
--출력--
2360
3776
1416
181720
문제풀이+해설
472 (1) 세자리수는 정수형으로 저장
385 (2) 는 문자열 상태에서 각 자리 수를 분리해서, 3, 8, 5 로 저장
(3) 은 (1)*5, 
(4) 는 (1)*8,
(5) 는 (1)*3
(6) 은 (3) + (4)*10 + (5)*100 : 자리수 만큼 곱해서 더해줌
 -(6) 은 (1)*(2) 직접 곱해도 되지만 출제 원리에 맞게 위에 설명한 결과를 더하는 방식으로 구현해 보겠습니다.
code sol.
#include <iostream>
using namespace std;

int main() {
  int n1, n2, n3, n4, n5, n6; // 각 (1)~(6) 위치값
  int n2_1, n2_10, n2_100; // (2) 숫자의 각 자리의 값을 저장할 변수
  cin >> n1; // (1) 값을 정수로 받음
  cin >>  n2; // (2) 값을 정수로 받음
  n2_1 = n2 % 10; // (2)의 1의 자리수 
  n2_10 = (n2 / 10) % 10; // (2) 의 10의 자리수
  n2_100 = (n2 / 100); // (2) 의 100의 자리수

  n3 = n1 * n2_1; // (3) 1의 자리수 곱셈 결과
  n4 = n1 * n2_10; // (4) 10의 자리수 곱셈 결과
  n5 = n1 * n2_100; // (5) 100의 자리수 곱셈 결과

  n6 = n3 + n4*10 + n5*100; // (6) 각 자리수 곱해서 더한 결과

  cout << n3 << endl << n4 << endl << n5 << endl << n6 << endl;
  // (3) ~ (6)까지 값 출력, 값들을 줄바꿈(endl) 처리.
  return 0;
}
© 코드솔 - CodeSol. All Rights Reserved.