[백준 BOJ] 2588번 곱셈 (C언어)

2022. 1. 26. 13:03PS (Program Solving)/BOJ (백준)

문제 설명

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

 

2588번: 곱셈

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

www.acmicpc.net

백준 BOJ 2588번 곱셈 문제 사진

 

접근 방법 - 자릿수 추출 연산이 필요한 수학 문제

백준 2588번 문제는 자릿수 추출을 필요로 하는 곱셈 연산 문제이다.

해당 문제는 세 자릿수를 가진 2개의 수의 곱셈이 이루어지는 과정을 순차적으로 출력하는 문제이다.

위 문제에 나와있는 예시에 따르면, 472*5, 472*8, 472*3을 각각 계산하고, 제일 끝에는 최종적인 곱셈 결과를 출력하면 된다.

필자는 아래의 순서대로 코드를 작성하였고 문제를 해결하였다.

 

코드의 실행 순서

1) 2개의 수(a, b)를 입력받는다.

 

2) n1, n2, n3, result를 각각 선언한 뒤, 아래와 같이 초기화한다.

- n1: a와 b의 일의 자릿수와 곱한 값

- n2: a와 b의 십의 자릿수와 곱한 값

- n3: a와 b의 백의 자릿수와 곱한 값

- result: 위의 n1, n2, n3를 통한 최종적인 곱셈의 결과값

 

3) 2)의 변수 4개를 차례로 출력한 뒤 실행 종료한다.

(필자는 코드의 가독성을 높이기 위해 각각 변수로 나누어 따로 계산을 취하였다.

필자처럼 굳이 변수를 따로 만들지 않고 바로 출력을 실행하는 것이 더 빠를 것이다.)

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>

//백준 2588번 코드
int main() {
	int a, b;
	scanf("%d %d", &a, &b);
	
	int n1 = a * (b % 10);
	int n2 = a * (b % 100 / 10);
	int n3 = a * (b / 100);
	int result = n1 + n2 * 10 + n3 * 100;

	printf("%d\n%d\n%d\n%d\n", n1, n2, n3, result);
}

 

제출 결과

백준 BOJ 2588번 곱셈 문제 C 제출 결과

(2021.12.06 백준 2588번 문제 제출 결과)

반응형