반응형

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

 

풀이

1. (2)의 정수 자릿수분할

(1)과 (2)로 (3), (4), (5)의 결과를 얻기 위해서 (2)의 정수를 백의자리, 십의자리, 일의자리로 분할한다.

// 정수 : a, 일의자리 : il, 십의자리 : sib, 백의자리 : baek

il = a % 10; // a = 385, il = 5
a /= 10; // a = 38
sib = a % 10; // sib = 8
a /= 10; // a = 3
baek = a; // baek = 3

// 결과 : a = 3, baek = 3, sib = 8, il = 5

 

2. (3), (4), (5)의 결과 합산

(3) = a*il

(4) = a*sib

(5) = a*baek

(6) = (5)*100 + (4)*10 + (3)

 


전체코드(C++14)

#include <iostream>

using namespace std;

int main() {
	int a, b;
	int b100, b10, b1;

	cin >> a >> b;
	b1 = b % 10;
	b /= 10;
	b10 = b % 10;
	b /= 10;
	b100 = b;

	cout << a * b1 << endl << a * b10 << endl << a * b100 << endl;
	cout << a * b1 + a * b10 * 10 + a * b100 * 100;
}