본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 2745번: 진법 변환 [Java]

문제: https://www.acmicpc.net/problem/2745

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

1. 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String N = sc.next();
		int B = sc.nextInt();
		int sum = 0;
		for(int i = N.length() - 1; i >= 0; i--) {
			char c = N.charAt(i);
			int temp = 0;
			if(c >= 'A' && c <= 'Z')
				temp = c - 'A' + 10;
			else
				temp = c - '0';
			sum += (int) Math.pow((double)B, N.length() - i - 1) * temp;
		}
		System.out.println(sum);
	}
}

2. 설명

2진법에서 10진법으로 바꾸는 방법을 알면 쉽게 해결