이번 문제는 임의의 진수와 해당 진수로 이루어져 있는 값을 입력받아 10진수로 변환하는 문제이다.
예를 들어 8진수 77은 이진수로 1 1 1 1 1 1이고(8진수는 2진수를 3자리씩 자름, 2진수로 8은 111) 10진수로 변경하면 63이다.
$8^1 * 7 + 8^0 * 7 = 63$
성공 소스
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
String n = st.nextToken();
int b = Integer.parseInt(st.nextToken());
int result = 0;
for (int i = 0; i < n.length(); i++) {
// 지수
int square = n.length() - i - 1;
// 문자인 경우
if (n.charAt(i) > 57) {
result += (int) (Math.pow(b, square) * (n.charAt(i) - 55));
} else {
result += (int) (Math.pow(b, square) * (n.charAt(i) - '0'));
}
}
System.out.println(result);
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 11576번 : Base Conversion - JAVA (0) | 2024.03.31 |
---|---|
[백준] 11005번 : 진법 변환 2 - JAVA (0) | 2024.03.31 |
[백준] 11561번 : 징검다리 - JAVA (0) | 2024.03.31 |
[백준] 1966번 : 프린터 큐- JAVA (0) | 2024.03.28 |
[백준] 골드 달성 후기 (0) | 2024.03.24 |