문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class b_11005 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
int n = Integer.parseInt(inputs[0]);
int b = Integer.parseInt(inputs[1]);
convert(n,b);
}
public static void convert(int n, int b) {
String result = "";
while(n > 0) {
int r = n/b;
int remain = n%b;
if(remain >=10) {
result = (char)(remain + 'A' - 10) + result;
} else {
result = remain + result;
}
n = r;
}
System.out.println(result);
}
}
|
cs |
진법계산은 10보다 크면 문자로 변환하는 식으로 만들었다. 문자 입력 받는 것에 익숙해지기 위해 노력해야할 것 같다. 한줄로 BufferedReader로 입력받는 것은 이렇게 String이 필요하다. 기억하자.
'java' 카테고리의 다른 글
[java] 2581번 소수 (0) | 2024.04.03 |
---|---|
[java] 2745 진법 (0) | 2024.03.28 |
[java] 2720번 세탁소 사장 동혁 (0) | 2024.03.26 |
[java] 2903번 중앙 이동 알고리즘 (0) | 2024.03.25 |
[java] 2738번 행렬 덧셈 (0) | 2024.03.21 |