[백준/BOJ] 백준 2588번 : 곱셈

2020. 7. 8. 15:03알고리즘 문제풀이

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

세자리수 (1),(2)를 입력받고 (2)의 각 자릿수를 구한 뒤, 구한 자릿수와 (1)을 곱해 만들어지는 (3),(4),(5)를 구한다. 이를 통해 (6)을 구한다.

 

코드

#include <iostream>
#include <string>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int num1, num2; 
	int num2_3, num2_2, num2_1;
	int num3, num4, num5, num6;

	cin >> num1 >> num2; //(1)위치의 수(세 자리수)와 (2)위치의 수(세 자리수)를 입력받는다

	//세자리수를 문자열로 바꿔 각 자릿수를 구해 다시 정수형으로 바꾸는 형식을 이용한다
	num2_3 = stoi(to_string(num2).substr(0, 1)); //(2)위치의 수 중 세번째 자리수를 저장한다
	num2_2 = stoi(to_string(num2).substr(1, 1)); //(2)위치의 수 중 두번째 자리수를 저장한다
	num2_1 = stoi(to_string(num2).substr(2, 1)); //(2)위치의 수 중 첫번째 자리수를 저장한다

	num3 = num1 * num2_1; //(3)위치의 수를 구한다
	num4 = num1 * num2_2; //(4)위치의 수를 구한다
	num5 = num1 * num2_3; //(5)위치의 수를 구한다
	num6 = num5 * 100 + num4 * 10 + num3; //(6)위치의 수를 구한다

	cout << num3 << "\n" << num4 << "\n" << num5 << "\n" << num6;

	return 0;
}