본문 바로가기
백준 알고리즘 단계별 풀이 (문제 수)/입출력과 사칙연산 (14)

[C++] 세자리수 X 세자리수 : 2588번

by 17번 일개미 2022. 6. 21.
728x90

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

 

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.


풀이

#include <iostream>
using namespace std;

int main() {
	int a; int b; // 두 세자리 수 입력
	cin >> a;
	cin.ignore();
	cin >> b;
    // 100의자리 10의자리 1의자리 구하기
	int b_100 = (b / 100) * 100;
	int b_10 = ((b - b_100) / 10) * 10;
	int b_1 = b - b_100 - b_10;
	// 각 자리와 a 를 곱한 값이 구하고자 하는 것
	cout << a * b_1 << endl;
	cout << a * (b_10 / 10) << endl;
	cout << a * (b_100 / 100) << endl;
	// 결과를 저장하고 최종 결과 까지 계산
	int first = a * b_1;
	int second = a * (b_10 / 10);
	int third = a * (b_100 / 100);

	cout << first + (second * 10) + (third * 100) << endl;
}

(3),(4),(5) 의 결과는 곱하는 두 수 A, B 중 A와 B의 각 자릿수를 순서대로 곱한 결과와 같다.

 

따라서, 각 자릿수를 추출하고 계산한 값을 출력한다.

 

최종적인 (6)은 (3),(4),(5)의 숫자를 10, 100을 곱해 자릿수를 맞춰준 후 모두 더해주면 된다.

728x90