일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 논문리뷰
- 백준알고리즘
- 소수판정
- 문자열
- 해시를사용한집합과맵
- C++
- C언어
- 논문구현
- 프로그래머스sql
- MySQL
- 정렬
- SQL
- 프로그래머스연습문제
- C
- 프로그래머스코딩테스트
- 사칙연산
- 그리디
- 이진탐색
- 프로그래머스
- 수학
- 그리디알고리즘
- 이분탐색
- 브루트포스알고리즘
- 자료구조
- 구현
- 백준
- 큐
- 정수론
- Image Classification
- 다이나믹프로그래밍
- Today
- Total
초보 개발자의 이야기, 릿허브
[C++] 백준 2588번 곱셈 본문
1. 문제이해
https://www.acmicpc.net/problem/2588
위와 같은 방식으로 세 자리 자연수의 곱을 구할 때,
(3), (4), (5), (6) 의 위치에 들어갈 값을 구하는 것이 목표이다.
2. 문제풀이
상당히 쉬운 난이도의 문제이다.
사실 단계별로 풀어보기 포스팅도 하고 있는데, 어느정도 문제풀이가 필요할 것 같아서 쓰는건 비밀
(3), (4), (5), (6) 의 위치에 들어갈 값을 구하는 것이 목표인데,
(3)의 경우 (2)의 일의자리 숫자와 (1)의 곱
(4)의 경우 (2)의 십의자리 숫자와 (1)의 곱
(5)의 경우 (2)의 백의자리 숫자와 (1)의 곱
(6)의 경우 (2)와 (1)의 곱
과 같다.
for문이나 while문을 통해 (2)의 일, 십, 백의 자리를 차례대로 구해주고,
해당 자릿수와 (1)의 곱을 출력, 마지막으로 (1)과 (2)의 곱을 출력해주면 된다.
소스코드는 아래와 같다.
3. 소스코드
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int num1, num2;
int copy_num2; // 값을 복사해두기 위한 변수
int remainder = 0; // 일, 십, 백의 자리를 저장하는 변수
cin >> num1 >> num2;
// 아래 for문을 통해 num2 값이 변화하므로, 값을 복사
copy_num2 = num2;
for (int i = 1; i <= 3; i++) {
remainder = num2 % 10; // 10으로 나눈 나머지 -> 해당 자리수
cout << num1 * remainder << "\n";
num2 = num2 / 10; // 10으로 나누고, 다음 자리수를 구하도록 함
}
cout << num1 * copy_num2 << "\n";
return 0;
}
num1, num2, copy_num2, remainder 변수를 선언한다.
각각 문제의 (1), (2), (2)의 값을 복사해두는 변수, (2)의 각 자릿수를 저장하는 변수이다.
(1)과 (2)의 값을 입력받은 뒤, 아래 for문을 통해 num2 값이 변화하므로,
미리 copy_num2 변수에 num2 값을 복사해둔다.
이후 for문을 통해 각 자릿수를 remainder에 저장, 해당 값과 num1 값의 곱을 구해 차례로 출력한다.
(i = 1의 경우, num2 % 10은 num2의 일의자리 숫자가 나오게 되고,
num2의 일의자리 숫자와 num1의 곱을 출력하게 된다.
이후 num2 값을 10으로 나누어주어 백의자리가 십의자리, 십의자리가 일의자리가 되도록 만들어준 뒤
위 과정을 반복한다. )
마지막으로, copu_num2에 복사해둔 num2 값과 num1 값의 곱을 출력해준다.
'코딩테스트 > 📗 백준 (BOJ)' 카테고리의 다른 글
[C++] 백준 1541번 잃어버린 괄호 (0) | 2022.01.04 |
---|---|
[C++] 백준 2884번 알람 시계 (0) | 2021.12.16 |
[C++] 백준 1008번 A / B (0) | 2021.12.14 |
[C++] 백준 1934번 최소공배수 (0) | 2021.12.02 |
[C++] 백준 11650번 좌표 정렬하기 (0) | 2021.12.01 |