코딩/백준 BOJ
[백준/C언어] 2588번 - 곱셈
로디K
2021. 12. 21. 10:57
백준 웹사이트 "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)를 이용하는 것이 두번째 방법입니다.
반응형