본문 바로가기

코딩/백준 BOJ

[백준/C언어] 2588번 - 곱셈

백준 웹사이트 "2588번 - 곱셈" 문제풀이입니다.

언어는 C언어입니다. (제출 언어: C99)

 


문제

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net


소스 코드

#include <stdio.h>

int main(void){
    int A, B;
    scanf("%d %d", &A, &B);

    int line3 = A * (B % 10);
    int line4 = A * ((B / 10) % 10);
    int line5 = A * (B / 100);
    int line6 = line3 + (line4*10) + (line5*100);

    printf("%d\n", line3);
    printf("%d\n", line4);
    printf("%d\n", line5);
    printf("%d\n", line6);
    return 0;
}

문제 풀이

  (3)의 위치에 들어갈 숫자: (1)의 위치에 들어갈 숫자 × (2)의 위치에 들어갈 숫자의 '일의 자리'

  (4)의 위치에 들어갈 숫자: (1)의 위치에 들어갈 숫자 × (2)의 위치에 들어갈 숫자의 '십의 자리'

  (5)의 위치에 들어갈 숫자: (1)의 위치에 들어갈 숫자 × (2)의 위치에 들어갈 숫자의 '백의 자리'

 

  세자리 숫자의 '일의 자리': 10으로 나누었을 때의 나머지

  세자리 숫자의 '십의 자리': 10으로 나눈 몫을 구한 후, 그 몫을 10으로 나누었을 때의 나머지

  세자리 숫자의 '백의 자리': 100으로 나누었을 때의 몫

 

  이를 이용하여 Line 7, 8, 9 처럼 작성하면 됩니다.

  마지막 (6)은 두 가지 방법으로 구할 수 있습니다. 최종 결과이기에 단순히 곱하여 A*B를 구하는 것이 첫 번째 방법이며, (6) = (3) + (4)*10 + (5)*100 로 계산하여 (3)~(5)를 이용하는 것이 두번째 방법입니다.

 

반응형