본문 바로가기
study/CodingTest

백준 2588 곱셈 손계산 구현하기 (Java)

by 고기만두(개발자) 2021. 11. 3. 23:19
728x90
반응형

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

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


첫번째 수를 a, 두번째 수를 b라고 하면

b = 100x + 10y + z 꼴로 분해가 가능하다.

 

그리고 a*b =  a * 100x + a * 10y + a * z 로 분리하여 생각할 수 있고, 

문제의 의도는

(3) a*z

(4) a*10y

(5) a*100x

(6) a*b (최종결과) 를 분리하여 출력하는 것에 있다.

 

두 정수 a, b 를 입력받았고

z = b % 10

385 % 10 하면 385를 10으로 나눈 나머지 5가 출력된다.

 

y = b % 100 / 10

385 %100 하면 85가 나오고, 그 85를 10으로 나눴는데 int이니까 몫인 8만 살아남는다.

 

z = b /100

385/100 했는데 int 니까 3만 살아남는다.

 

배열로 뽑을 수도 있을 것 같지만 형변환 하기 귀찮다...

 

사실 귀찮아서 늘 쓰던 자바 쓰는 내 인생이 더 레전드

 

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();    //첫번째 숫자
        int b = sc.nextInt();
        
        sc.close();
        
        //a*b의 일의자리
        int one= a * (b % 10);
        //a*b의 십의자리
        int ten= a * (b % 100 / 10);
        //a*b의 백의자리
        int hundred= a * (b / 100);
        //a*b
        int fin= one+ten*10+hundred*100;
        System.out.println(one);
        System.out.println(ten);
        System.out.println(hundred);
        System.out.println(fin);
        
    }
}
728x90
반응형

댓글