Coding Test/Baekjoon - Java

11005: 진법 변환 2

_jordy 2021. 2. 15. 11:35

www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net

10진법 N을 B진법으로 바꾸려면 N이 0이 될 때까지 나머지 계속 구하여 저장한 후 거꾸로 출력하면 된다.


//1
import java.util.*;

public class Main {
	public static StringBuilder change(int n, int b) {
		StringBuilder sb = new StringBuilder();
		while(n>0) {
			if(n%b < 10) {
				sb.append(n%b);
			}else {
				sb.append((char)(n%b+55));
			}
			n /= b;
		}
		return sb.reverse();
	}
	
    public static void main(String args[]) {
    	Scanner sc = new Scanner(System.in);
    	int n = sc.nextInt();
    	int b = sc.nextInt();
    	StringBuilder sb = change(n, b);
    	System.out.println(sb);
	}
}

//2
import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int b = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        while (n > 0) {
            int r = n % b;
            if (r < 10) {
                sb.append((char)(r + '0'));
            } else {
                sb.append((char)(r - 10 + 'A'));
            }
            n /= b;
        }
        System.out.println(sb.reverse());
    }
}

'Coding Test > Baekjoon - Java' 카테고리의 다른 글

1373: 2진수 8진수  (0) 2021.02.15
2745: 진법 변환  (0) 2021.02.15
9613: GCD합  (0) 2021.02.15
1850: 최대공약수  (0) 2021.02.15
1934: 최소공배수  (0) 2021.02.15