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
'백준 알고리즘 단계별 풀이 (문제 수) > 입출력과 사칙연산 (14)' 카테고리의 다른 글
[C++] 새싹 출력하기 : 25083번 (0) | 2022.06.21 |
---|---|
[C++] 나머지 연산 사칙연산 : 10430번 (0) | 2022.06.21 |
[C++] 불기 -> 서기 출력하기 : 18108번 (0) | 2022.06.21 |
[C++] 문자 뒤에 "??!" 출력하기 : 10926번 (0) | 2022.06.20 |
[C++] 사칙연산 계산기 만들기 : 10869번 / 모듈러 연산'%' (0) | 2022.06.20 |