https://www.acmicpc.net/problem/10998
문제
두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A×B를 출력한다.
풀이
곱셈은 덧셈을 여러 번 한 것입니다. 따라서 엄준식 언어로 프로그래밍하기 - BOJ 1000: A+B에서 구현한 덧셈 코드를 반복문으로 여러 번 돌리면 곱셈 연산을 구현할 수 있습니다.
덧셈을 구현하는 데는 1을 받는 변수, 1을 뺏기는 변수, 총 2개의 변수만 있으면 됐습니다. 그러나 곱셈을 구현하려면 앞의 두 변수와 함께 더할 숫자를 상수로 계속 저장해 놓을 변수와 덧셈의 결과를 차곡차곡 쌓아 나갈 변수가 추가로 필요합니다(덧셈 연산 중 피연산자 값이 변하기 때문입니다).
코드
어떻게
엄식?
어엄식?
어어엄어
동탄어어?준... .....
동탄어어어?준.. .. ...
어어엄어어어,
어어어엄어어어어.
준.. ...
어엄어어,
준.....
식어어어어!
화이팅!.,
이 사람이름이냐ㅋㅋ
01│어떻게
02│엄식?
03│어엄식?
→ 정수 2개를 입력받아 각각 1번 변수(A), 2번 변수(B)에 저장합니다.
04│
05│어어엄어
→ 3번 변수를 위에서 언급한 '더할 숫자를 상수로 계속 저장해 놓을 변수'로 지정하고, A의 값을 저장합니다.
(곱셈 반복문 시작)
06│동탄어어?준... .....
07│동탄어어어?준.. .. ...
08│어어엄어어어,
09│어어어엄어어어어.
10│준.. ...
→ 6~9번째 줄(덧셈 반복문): 3번 변수+4번 변수의 값을 계산해 4번 변수('덧셈의 결과를 차곡차곡 쌓아 나갈 변수')에 넣고, 2×2×3=12번째 줄로 넘어갑니다. 첫 번째 반복에서는 4번 변수의 값이 0이므로(9번째 줄에서 처음 선언됨) 4번 변수=3번 변수=1번 변수(A)가 됩니다. 두 번째 반복에서는 4번 변수의 값이 A에서 2A로 바뀌고, ... n번째 반복에서는 4번 변수의 값이 n×A가 됩니다.
→ 6번째 줄은 뒤에서 설명하겠습니다.
11│
12│어엄어어,
13│준.....
(곱셈 반복문 끝)
→ 2번 변수(B)번만큼 A를 반복해서 더해야 하므로 2번 변수의 값을 1만큼 빼준 후 5번째 줄로 넘어갑니다. 5번째 줄에서 3번 변수의 값을 A로 복구합니다.
→ 이때 6번째 줄에서 2번 변수의 값이 0인지(= B를 A번 반복해서 더하는 작업이 끝났는지) 확인하고, 만약 그렇다면 3×5=15번째 줄로 넘어갑니다.
14│
15│식어어어어!
16│화이팅!.,
17│이 사람이름이냐ㅋㅋ
→ 덧셈을 B번 반복하면 4번 변수의 값은 B×A가 됩니다. 이를 출력한 후 return 0;을 실행합니다.
곱셈이 덧셈의 반복이라는 사실을 알고 있으면 풀 수 있는 문제였습니다. 비록 쉽지는 않지만요...
마지막으로 곱셈을 실행하는 파이썬 코드를 보도록 하겠습니다.
print(A * B)
'컴퓨터 관련 > 백준(BOJ)' 카테고리의 다른 글
엄준식 언어로 프로그래밍하기 - BOJ 2557: Hello World (0) | 2022.05.27 |
---|---|
엄준식 언어로 프로그래밍하기 - BOJ 1001: A-B (0) | 2022.05.26 |
엄준식 언어로 프로그래밍하기 - BOJ 1000: A+B (4) | 2022.05.26 |