티스토리 뷰

BaekJoon/C

[BaekJoon/C] 백준 2588번 곱셈

Gabii_Y 2019. 12. 24. 16:49

 

이번 포스팅은 백준 알고리즘 사이트의 2588번 곱셈 문제를 C 언어로 코딩해보도록 하겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.

 

https://www.acmicpc.net/problem/2588

 

이번 포스팅은 입출력과 사칙연산 단계의 문제입니다.

 

 

이 문제는 세 자리인 두 수를 입력 받아 두 수의 곱셈 과정을 출력하는 문제입니다.

 

문제 설명에도 나와있듯이 세 자리 수를 곱할 때는 3번의 곱셈을 하기 때문에 두 번째로 입력받은 수를 각 자리마다 잘라서 첫 번째 수와 연산하는 과정을 보여야 한다고 보시면 됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main() {
    int inp1, inp2;
    int out1, out2, out3, res;
    scanf("%d %d"&inp1, &inp2);
    out1 = inp1 * ((inp2%100)%10);
    out2 = inp1 * ((inp2%100)/10);
    out3 = inp1 * (inp2/100);
    res = inp1 * inp2;
    printf("%d\n%d\n%d\n%d", out1, out2, out3, res);
}
 

 

두 개의 세 자리 수를 scanf 함수를 통해 inp1과 inp2로 입력 받고, 두 수의 연산 과정을 보이기 위해 out1, out2, out3와 최종값을 보이기 위한 res 변수를 선언해줍니다.

 

out1은 inp1과 inp2의 1의 자리를 곱한 결과를 보여야 하기 때문에 inp2의 1의 자리를 만들 수 있도록 ((inp2%100)%10)으로 계산하여 줍니다. 각 자리 수를 구하여 inp1과 곱한 값을 각 out 변수에 저장해주고, 최종적으로 두 세 자리 수를 곱한 값을 res에 담아줍니다.

 

모든 결과를 printf를 통해 출력하면 이 문제를 해결할 수 있습니다.

 

다음 포스팅에서는 다음 문제를 풀어보도록 하겠습니다.

 

 

다음 포스팅에서 봐요 :))

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함