728x90

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

 

2588번: 곱셈

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

www.acmicpc.net

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

풀이

(3)번의 값은 (1)번의 수와 (2)번의 일의 자리 수를 곱한 결과이고, (4)번의 값은 (1)번의 수와 (2)번의 십의 자리 수를, (5)번의 값은 (1)번의 수와 (2)번의 백의 자리 수를 곱한 결과이다.

(6)번의 값은 (3) + (4) * 10 + (5) * 100을 한 결과이다.

 

Scanner 클래스를 이용한 방법, BufferedReader 클래스 StringBuilder 클래스를 이용한 방법으로 풀어 보았다.

 

코드

Scanner 클래스를 이용한 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();

        int result3 = num1 * (num2 % 10);
        int result4 = num1 * (num2 / 10 % 10);
        int result5 = num1 * (num2 / 100 % 10);
        int result6 = result3 + result4 * 10 + result5 * 100;

        System.out.println(result3);
        System.out.println(result4);
        System.out.println(result5);
        System.out.println(result6);
    }
}

BufferedReader 클래스 StringBuilder 클래스를 이용한 코드

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int num1 = Integer.parseInt(br.readLine());
        int num2 = Integer.parseInt(br.readLine());

        int result3 = num1 * (num2 % 10);
        int result4 = num1 * (num2 / 10 % 10);
        int result5 = num1 * (num2 / 100 % 10);
        int result6 = result3 + result4 * 10 + result5 * 100;

        sb.append(result3).append("\n");
        sb.append(result4).append("\n");
        sb.append(result5).append("\n").append(result6);
        System.out.println(sb);
    }
}

 

틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!

728x90

+ Recent posts