1. 문제 상세
https://www.acmicpc.net/problem/2588

2. 문제 접근
cin 을 통해 세 자리 자연수 두 개 A, B 를 입력 받고
cout 을 통해 B의 각 자릿수와 A를 곱한 값을 출력.
일의 자리, 십의 자리, 백의 자리 순서대로 A와 곱하여 각 줄에 출력하고
마지막 줄에는 A와 B를 곱한 값을 출력한다.
B의 각 자리수를 구해내는 것이 관건인것 같다.
일의 자리수는 나머지 연산을 사용하여 B를 100으로 나눈 나머지에 다시 10으로 나눈 나머지를 구하여 일의 자리수를 구한다.
└ 385%100 = 85, 85%10 = 5
십의 자리수는 B를 100으로 나눈 나머지를 10으로 나누면 된다.
└ 385%100 = 85, 85/10 = 8백의 자리수는 B를 100으로 나누기만 하면 끝.
└ 385/100 = 3
이렇게 구한 각 자리수를 A와 곱하며 출력한다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A;
cin >> B;
cout << A * ((B%100)%10) << endl << A * ((B%100)/10) << endl << A * (B/100) << endl << A * B;
return 0;
}
정수형 변수 A, B를 선언. cin 으로 A와 B에 정수를 입력받아 저장.
cout 으로 각 연산 값을 출력한다.
먼저 A와 B의 일의 자리수 ((B%100)%10) 을 곱한 값.
A와 B의 십의 자리수 ((B%100)/10) 을 곱한 값.
A와 B의 백의 자리수 B/100 을 곱한 값.
마지막으로 A와 B를 곱한 값을 출력한다.
4. 성능 확인

5. 마무리
이번 문제에선 나머지 연산을 사용하여 자연수의 각 자리수를 구하는 방법을 배웠다.
연산에서 우선순위를 위해 ( ) 소괄호를 잘 사용하자.
'백준 - 단계별로 풀어보기 > 입출력과 사칙연산' 카테고리의 다른 글
[백준] 10171번 : 고양이 | C++ (0) | 2023.09.13 |
---|---|
[백준] 11382번 : 꼬마 정민 | C++ (0) | 2023.09.13 |
[백준] 10430번 : 나머지 | C++ (0) | 2023.09.13 |
[백준] 18108번 : 1998년생인 내가 태국에서는 2541년생?! | C++ (0) | 2023.09.13 |
[백준] 10926번 : ??! | C++ (0) | 2023.09.12 |