반응형
문제 : 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;
}
최근댓글