본문 바로가기

코드업(CodeUp)/기초 100제

[코드업/자바] 기초 100제 - 정수 1개 입력받아 나누어 출력하기

1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기

1. 다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다.

참고
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
를 사용하면 1개의 숫자로 각각 구분되어 저장된다.

예시
읽어들인 값을 적당히 바꿔 출력하기 위해서

printf("[%d]", a*10000);

과 같은 방법도 가능하다.

 

2. 다섯 자리로 이루어진 1개의 정수를 입력받는다.
(단, 10,000 <= 입력받는 수 <= 99,999 )

 

3. 각 자리의 숫자를 분리해 한 줄에 하나씩 [ ]속에 넣어 출력한다.

ex) 입력 : 75254

출력 : 

[70000]

[5000]

[200]

[50]

[4]


접근 방법은 입력받은 숫자를 자릿수 단위로 끊어서 나머지를 배열에 저장하는 것이다.

위의 예시로75254를

10으로 나눈 나머지 4

그리고 원래 숫자에서 나눈 나머지를 빼준다

74250을

100으로 나눈 나머지 50

그리고 원래 숫자에서 나눈 나머지를 빼준다

이런 과정을 거쳐서 배열에 저장한 다음

printf로 출력한다.

.

.

import java.util.*;
import java.math.*;

public class Exercise {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int[] arr = new int[5];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = a % (int) Math.pow(10, i + 1);
			a -= arr[i];
		}

		for (int i = arr.length - 1; i >= 0; i--) {
			System.out.printf("[%d]\n", arr[i]);
		}
	}
}

728x90
반응형