A를 10, ..., Z를 35로 바꾸는 것은 유니코드 변환이다.
예제에서, 36진법의 ZZZZZ를 10진법으로 계산하려면
마찬가지로 오른쪽부터
Z*(36^0) + Z*(36^1) + Z*(36^2) + Z*(36^3) + Z*(36^4)
Z는 유니코드 변환을 해서 적용시키면 35인데 이해를 돕고자 Z로 표기했다.
계산해 보면 60,466,175가 나온다.
즉, n진법을 10진법으로 변환하려면
n진법으로 표기된 수의 m의 자릿수 * (n^m)를 다 더하면 된다.
+ 진법 계산에 대한 이해를 도울 예제
이진법 101을 계산하는 것을 예시로 들어 보면,
101(이진법으로 표기된 수)에서 오른쪽부터 0번째 자리의 숫자: 1 (n=2, m=0)
1*(2^0)
오른쪽부터 1번째 자리 숫자: 0 (n=2, m=1)
0*(2^1)
오른쪽부터 2번째 자리 숫자: 1 (n=2, m=2)
1*(2^2)
그러니까 2진법으로 표기된 수(101)를 10진법으로 변환하면 1 + 4 = 5
정답 코드
import java.util.*;
import java.lang.Math;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
char[] array = (sc.next()).toCharArray();
int b = sc.nextInt();
int result = 0;
int n = array.length;
for (int i=n-1; i>=0; i--) {
int num = Character.getNumericValue(array[i]);
int j = (n-1)-i;
result += (Math.pow(b, j)) * num;
}
System.out.println(result);
}
}
'Programming Language > Java' 카테고리의 다른 글
[Java] 백준 BOJ 10811: 바구니 뒤집기 (1) | 2024.01.26 |
---|---|
[Java] 백준 BOJ 10810: 공 넣기, 배열 선언 시 Integer과 int의 차이 (0) | 2024.01.19 |
[Java] 백준 BOJ 1152: 단어의 개수(asList 값 제거) (1) | 2023.12.01 |
[Java] Java란? (0) | 2023.11.28 |
[Java] 백준 BOJ 9086: 문자열 (0) | 2023.11.20 |