728x90
난이도 - 브론즈 2
문제
정수 m, n을 입력 받아, 10진수 m을 n진수로 바꾸어 출력하는 프로그램을 작성하시오.
입력
첫 줄에서 정수 m, n을 입력 받는다. (0 ≤ m ≤ 1,000,000, 2 ≤ n ≤ 16)
출력
변환한 n진수의 수를 출력한다. 11~16 진수의 경우 10 이상의 수는 A~F 문자를 사용한다. 예를 들어, 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F를 사용한다.
728x90
0~F의 문자를 문자열로 저장(dchar).
m%n를 인덱스로 하는 문자를 문자열에서 꺼내 StringBuffer에 붙인다.(나눌 수 없을 때까지 반복)
import java.io.*;
import java.util.StringTokenizer;
public class Main14915 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int m = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
bw.write(CardConv(m, n));
bw.flush();
br.close();
bw.close();
}
static String CardConv(int m, int n) {
String dchar = "0123456789ABCDEF";
StringBuffer result = new StringBuffer();
do {
result.append(dchar.charAt(m % n));
m /= n;
} while (m != 0);
return result.reverse().toString();
}
}
728x90
'백준 > Java' 카테고리의 다른 글
[백준 자바] 14491번(9진수) - 10진수를 9진수로 바꾸기 (0) | 2024.06.19 |
---|---|
[백준 자바] 10829번(이진수 변환) - 자연수를 2진수로 바꾸기 (0) | 2024.06.19 |
[백준 자바] 1373번(2진수 8진수), 2998번(8진수) - 2진수를 8진수로 바꾸기 (0) | 2024.06.19 |
[백준 자바] 1212번(8진수 2진수) - 8진수를 2진수로 바꾸기 (0) | 2024.06.19 |
[백준 자바] 1110번(더하기 사이클) (0) | 2024.06.18 |