Java

[Java] 자릿수 출력하기

dearbeany 2022. 8. 5. 00:34

1. 나눗셈 연산을 이용해서 구현하는 방법.

(1) num <1234>을 10으로 나눴을 때의 나머지(%)는 가장 마지막 자리일의 자리<4>.

(2) (1)에서 몫(/) <123>을 다시 10으로 나눴을 때의 나머지(%)는 몫<123>의 가장 마지막 자리(= 맨 처음 값의 십의 자리)<3>.

(3) (2)에서 몫(/) <12>을 다시 10으로 나눴을 때의 나머지(%)는 몫<12>의 가장 마지막 자리(= num의 백의 자리)<2>.

(4) (3)에서 몫(/) <1>을 다시 10으로 나눴을 때의 나머지(%)는 몫<1>의 가장 마지막 자리(= num의 백의 자리)<1>.

(5) (4)를 통해서 몫은 0이 되면서 종료조건을 주면 됨.

import java.util.ArrayList;
import java.util.Scanner;

public class 자릿수구하기 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ArrayList<Integer> list = new ArrayList<>();

		int n = sc.nextInt(); // 12345
		int a = 0; // 출력할 자릿수

		while (n > 0) { // 몫이 0보다 클 때 루프, 즉 나눌 수 있으면
			a = n % 10; // 나머지
			list.add(a);
			n = n / 10; // 몫
		}
		System.out.println(list);

	}

}

4
출처:&nbsp;https://junghn.tistory.com/entry/%EC%9E%90%EB%B0%94-int%EB%A5%BC-%EC%9E%90%EB%A6%BF%EC%88%98%EB%B3%84-int-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B6%84%ED%95%A0

 

2. 문자열로 변환해서 구하는 방법

int num = 5678;
String strNum = Integer.toString(num);
int[] arrNum = new int[strNum.length()];
		
for(int i = 0; i < strNum.length(); i++) {
	arrNum[i] = strNum.charAt(i) - 48;
	arrNum[i] = strNum.charAt(i) - '0';

}
System.out.println(Arrays.toString(arrNum));