[알고리즘]/백준

백준 2745 자바 - 진법 변환

broship 2021. 7. 8. 13:02

문제


 

 

 

문제해결


- 어떤 진수든 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);
    }
}