# 문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
# 풀이
나눗셈 연산자와 나머지 연산자에 대해 알고 있다면 어렵지 않은 문제다.
코드를 보기에 앞서 어떻게 풀면 좋을지 잠시 생각해보자.
우리가 구해야 할 값은 (3), (4), (5), (6)이다.
다음을 통해 살펴보면
(3)은 (1)과 (2)의 5를 곱한 값, 472*5 = 2360
(4)는 (1)과 (2)의 8을 곱한 값, 472*8 = 3776
(5)는 (1)과 (2)의 3을 곱한 값, 472*3 = 1416
(6)은 (1)과 (2)를 그대로 곱한 값이다.
그렇다면 우리는 (2)를 분해할 필요가 생기는데, 이때 필요한 것이 나머지 연산자다. (+나눗셈 연산자)
정답 소스코드를 보며 확인해보자.
#include <iostream>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << a * (b%10) << endl;
cout << a * ((b/10)%10) << endl;
cout << a * (b/100) << endl;
cout << a*b;
return 0;
}
첫번째 (3)을 구하는 과정이다.
385의 5를 구하기 위해 b%10 연산을 수행해주었다.
수행 결과는 5이므로, 472*5 = 2360이 출력된다.
두번째 (4)를 구하는 과정이다.
385의 8을 구하기 위해 b/10을 해준 38에서 나머지 연산을 수행해준다.
수행 결과는 8이므로, 472*8 = 3776이 출력된다.
세번째 (5)를 구하는 과정이다.
385의 3을 구할 때는 나누기 연산만으로도 충분하다.
b/100으로 3을 구해, 472*3 = 1416을 출력한다.
마지막으로 (6)을 구할 땐 우리가 알고있는 그대로 a*b 연산을 수행해 출력해주면 된다.
728x90
'백준 > C++' 카테고리의 다른 글
[백준] 25314번: 코딩은 체육과목 입니다 | C++ 풀이 (0) | 2023.05.08 |
---|---|
[백준] 2480번: 주사위 세개 | C++ 풀이 (0) | 2023.05.06 |
[백준] 2525번: 오븐 시계 | C++ 풀이 (0) | 2023.05.05 |
[백준] 2884번: 알람 시계 | C++ 풀이 (0) | 2023.05.04 |
[백준] 1008번: A/B | C++ 풀이 (0) | 2023.05.02 |