방명록
- [백준 / 자바] 11005번 진법변환22023년 12월 14일 09시 03분 17초에 업로드 된 글입니다.작성자: 민발자728x90
문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
60466175 36
출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
ZZZZZ
풀이
2745번 진법변환 반대로 푸는 문제
10진수 46 → 2진수 101110
n % b가 10이 넘는 경우 대문자로 변환 → 16진법의 경우 A는 10의미 A 아스키코드는 65 → n % b에 55 더함
10 이하인 경우 그대로
n은 n/b로 변경
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); // 수 int b = Integer.parseInt(st.nextToken()); // 진법 br.close(); StringBuilder sb = new StringBuilder(); // 정답 while (n > 0) { if(n % b >= 10){ // 10이상인 경우 대문자로 변경 sb.append((char)((n % b) + 55)); } else { // 10이하 그대로 입력 sb.append(n % b); } n /= b; } // reverse해야함! System.out.println(sb.reverse().toString());
728x90'기록 > 백준' 카테고리의 다른 글
[백준 / 자바] 24265번 알고리즘 수업 - 알고리즘의 수행 시간4 (0) 2023.12.16 [백준 / 자바] 5086번 배수와 약수 (0) 2023.12.15 [백준 / 자바] 2745번 진법변환 (0) 2023.12.13 [백준 / 자바] 1009번 분산처리 (0) 2023.12.12 [백준 / 자바] 2941번 크로아티아 알파벳 (0) 2023.12.02 다음글이 없습니다.이전글이 없습니다.댓글