https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
어떤 진수든 10진수로 바꾸는 방법은 똑같다.
각 자리의 10진수 숫자 * 진수의 각 자리수 제곱을 모두 더한 값이다.
public class Boj2745_진법변환 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String n = st.nextToken();
int b = Integer.parseInt(st.nextToken());
// 어떤 진수든 10진수로 바꾸는 방법은 똑같다.
// 각 자리의 10진수 숫자 * 진수의 각 자리수 제곱을 모두 더한 값이다.
long result = 0;
int idx = 0; // 승 0, 1, 2, 3....
int num = 0; // 계산하기 위해 각 자리 숫자를 10진수로 바꿔준다.
for (int i = n.length()-1; i >= 0; i++) {
char c = n.charAt(i);
if (c >= '0' && c <= '9') {
num = c- '0';
} else {
num = c - 55;
}
result += num * Math.pow(b, idx++);
}
System.out.println(result);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 10951 A+B-4 (0) | 2022.03.02 |
---|---|
백준 1924 2007년 (0) | 2022.03.02 |
백준 6359 만취한 상범 (0) | 2022.02.28 |
백준 10987 모음의 개수 (0) | 2022.02.28 |
백준 2587 대표값2 (0) | 2022.02.28 |