백준 웹사이트 "2588번 - 곱셈" 문제풀이입니다.
언어는 C언어입니다. (제출 언어: C99)
문제
소스 코드
#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)를 이용하는 것이 두번째 방법입니다.
반응형
'코딩 > 백준 BOJ' 카테고리의 다른 글
[백준/C언어] 9498번 - 시험 성적 (0) | 2021.12.22 |
---|---|
[백준/C언어] 1330번 - 두 수 비교하기 (0) | 2021.12.22 |
[백준/C언어] 10430번 - 나머지 (0) | 2021.12.20 |
[백준/C언어] 10869번 - 사칙연산 (0) | 2021.12.20 |
[백준/C언어] 1008번 - A / B (0) | 2021.12.20 |