📌문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
예제 입력)
60466175 36
예제 출력)
ZZZZZ
📌답
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String[] in = br.readLine().split(" ");
int n = Integer.parseInt(in[0]);
int b = Integer.parseInt(in[1]);
String result = "";
int temp = 0;
while(n>0) {
temp = n%b;
sb.insert(0,temp > 9 ? (char)(temp+55) : (char)(temp+'0'));
n/=b;
}
System.out.println(sb);
}
}
📌코멘트
오답이유 : 형변환 실수
/**
* sb.append(temp > 9 ? (char)(temp+55) : temp);
* 이렇게 작성했을 때 왼쪽 조건은 char형이고, 오른쪽 조건은 int형이라서
* 데이터타입이 일관되지 못해 결과에 오류가 생긴다.
*/
3등😆😆
끝까지 읽어주셔서 감사합니다 :)
Have a good day🐱
📢
1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.
'Coding Test > 백준 - JAVA' 카테고리의 다른 글
백준 2720번 세탁소 사장 동혁 (JAVA) (0) | 2024.12.23 |
---|---|
백준 티어(내 티어/문제 티어) 보는 법 (0) | 2024.12.23 |
백준 2745 진법 변환 (JAVA) (0) | 2024.12.22 |
백준 2563번 색종이 (JAVA) (1) | 2024.12.20 |
백준 10798번 세로읽기 (JAVA) (2) | 2024.12.20 |