문제
문제해결
- 어떤 진수든 10진수로 바꾸는 방법은 똑같다
- 각 자리의 10진수 숫자 * 진수의 각 자리수 제곱을 모두 더한 값이다
ex) 2진수 1101 일때
1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 13
import java.util.Scanner;
//b진수 n 을 10진수로 바꾸기
public class B2745 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String n = sc.next();
int b = sc.nextInt();
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';//0~9 사이는 그대로 출력
else
num = c - 55;//A~Z는 숫자로 변경
result += num * Math.pow(b, idx++);
}
System.out.println(result);
}
}
'[알고리즘] > 백준' 카테고리의 다른 글
백준 11653 자바 - 소인수분해 (0) | 2021.07.10 |
---|---|
백준 2745 자바 - Base Conversion (0) | 2021.07.09 |
백준 11005 자바 - 진법 변환2 (0) | 2021.07.07 |
백준 17103 자바 - 골드바흐 파티션 (0) | 2021.07.06 |
백준 2089 자바 - -2진수 (0) | 2021.07.05 |