백준

백준 11005 진법 변환 2(Java)

Park DJ 2023. 1. 16. 16:49

https://www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

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

www.acmicpc.net


 

해석 및 팁

 


 

10진수를 N진수로 나누는 방법은 주어진 10진수에 N만큼 나누었을때의 나머지를 구해서 역순으로 출력하면 됩니다. 10이상이면 A,B,C... 이므로 char형식으로 아스키코드를 활용하면 됩니다.

 


 

Java 코드

 


import java.util.Scanner;

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) {
      if (n % b < 10) sb.append((char)(n % b + '0'));     //char형식이므로 '0'만큼 더해준다
      else sb.append((char)(n % b + 55));                 //A: 10, B: 11, ..., F: 15
      n /= b;
    }
    System.out.println(sb.reverse());            //뒤집어서 출력
    
  }
}