JAVA/CT

[BAEKJOON] 곱셈

코맹 2024. 2. 12. 15:20
[문제]

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

 

출력

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

 


 

(3) = 472 * 5

(4) = 472 * 8

(5) = 472 * 3

(6) = 472 * 385인 것은 알겠다.

 

근데 int 자리수 구하는 거 ..  어떻게 하는건데 ..

문자열로 바꿔서 잘라내기 ,, 등등 많은 방법들이 있었지만, 내가 사용한 방식은 나눗셈을 통해 자리수를 분리하는 것이었다.

 

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        // 세 자리 자연수
        int x, y;
        
        Scanner sc = new Scanner(System.in);
        
        x = sc.nextInt();
        y = sc.nextInt();

        int a = (x * (y % 10));
        int b = (x * ((y % 100) / 10));
        int c = (x * ((y % 1000) / 100));
        int d = (x * y);
        
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        
        
    }
    
}

 

(3)은 385 중 마지막 자리수를 구하는 것이었다.

따라서 int a = (y % 10)은 y값을 10으로 나눈 나머지를 구하는 것으로, 5라는 마지막 자리수를 구할 수 있었다.

다음으로 (4)는 두번째 자리수로, (y % 100)을 통해 85라는 나머지를 구할 수 있었다. 이후 (85 / 10)을 통해 두번째 숫자인 8을 구할 수 있었다.

나머지 첫번째 자리수도 동일하게 구했다. (벌써 어렵다 .. 😂 )

 

 

 

 

[참고]

https://okky.kr/questions/568372

'JAVA > CT' 카테고리의 다른 글

[BAEKJOON] 꼬마 정민  (0) 2024.02.12
[BAEKJOON] 1998년생인 내가 태국에서는 2541년생?!  (0) 2024.02.12