[문제]
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(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을 구할 수 있었다.
나머지 첫번째 자리수도 동일하게 구했다. (벌써 어렵다 .. 😂 )
[참고]
'JAVA > CT' 카테고리의 다른 글
[BAEKJOON] 꼬마 정민 (0) | 2024.02.12 |
---|---|
[BAEKJOON] 1998년생인 내가 태국에서는 2541년생?! (0) | 2024.02.12 |