본문 바로가기

백준 문제풀기/JAVA

[백준 2745 JAVA 자바] 진법 변환

코딩 수업을 들으면

선생님, 교수님께서 꼭 내주시는 문제, 과제중 하나가

바로 이 진법 변환입니다

 

분명 진법 변환을 어떻게 하는지

머리로는 알고 있습니다

 

처음엔 어려울 수 있으니

천천히 종이와 팬으로 써가면서 연습해봅시다

 

1. 1~9를 넘어서 A=10, B=11, C= 12 ... 대문자 알파벳을 숫자로 변환합시다

2. 진법에는 거듭제곱이 이용됩니다

3. 알맞게 출력합시다

 

코드입니다

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);		
		
		String str = scan.next();
		int n = scan.nextInt();
		int sum=0;
		
		for(int i=0;i<str.length();i++) {
			int k = str.charAt(i);
			if (k>64) {
				k = (int)k-55;
			}
			else {
				k = (int)k-48;
			}
			sum += k*(Math.pow(n, str.length()-i-1));			
		}
		System.out.println(sum);
	}
}

 

Math.pow(a,b)는 a의 b제곱입니다

반환값이 double이기에 주의합시다

 

저는 int인 k를 곱해서

자연스럽게 int인 sum에 더할 수 있게 된거에요