컴퓨터 하는 라따뚜이

[백준] 2588 자바_곱셈 본문

백준 문제풀이/01_입출력과 사칙연산

[백준] 2588 자바_곱셈

Ratatouille 2021. 4. 4. 00:35
2588번: 곱셈
 
www.acmicpc.net

문제.

(세 자리 수) * (세 자리 수)가 입력되었을 때 각 단계별로 값을 구해 출력하는 문제다.


풀이.

다른 방법으로도 풀 수 있지만 이 문제는 '사칙연산' 단계에 분류되어있기 때문에 '사칙연산'만을 사용해 풀 수 있도록 하자. 그리고 아마 이렇게 푸는것이 가장 이상적인 답이지 않을까 생각한다.

정수 A, 정수 B가 입력되었다 가정했을 때 출력 값은 다음과 같다.

(3) 번의 값 = A * B의 일의 자릿 수

(4) 번의 값 = A * B의 십의 자릿 수

(5) 번의 값 = A * B의 백의 자릿 수

(6) 번의 값 = A * B

그럼 어떻게 정수 B의 자릿 수를 구할 수 있을까?

매우 간단하다.

B % 10
  • 일의 자릿 수는 B를 10으로 %(mod) 해주면 된다.
B / 10 % 10
  • 십의 자릿 수는 B를 10으로 나눈(/) 값을 다시 10으로 %(mod) 해주면 된다.
B / 100 % 10
  • 백의 자릿 수는 B를 100으로 나눈(/) 값을 다시 10으로 %(mod) 해주면 된다.

문제에서 (세 자리 수) * (세 자리 수) 라고 정해주었기 때문에 이와 같이 간단하게 구현할 수 있다.


코드.

import java.util.Scanner; // Scanner클래스 임포트

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int A = input.nextInt(); // A 값 입력
        int B = input.nextInt(); // B 값 입력

        System.out.println(A * (B % 10)); // A * B의 일의 자릿수
        System.out.println(A * ((B / 10) % 10)); // A * B의 십의 자릿수
        System.out.println(A * ((B / 100) % 10)); // A * B의 백의 자릿수
        System.out.println(A * B); // A * B
    }
}

난이도 : ◐○○○○○○○○○

지극히 주관적으로 측정

'백준 문제풀이 > 01_입출력과 사칙연산' 카테고리의 다른 글

[백준] 10430 자바_나머지  (0) 2021.04.04
[백준] 10869 자바_사칙연산  (0) 2021.04.03
[백준] 1008 자바_A/B  (0) 2021.04.03
[백준] 10998 자바_A*B  (0) 2021.04.03
[백준] 1001 자바_A-B  (0) 2021.04.03