1. 입력받은 A와 B를 저장한다.
2. N을 저장한다.
3. A진수로 입력되는 N자릿수의 숫자를 10진수로 바꾼 값을 저장할 sum을 생성한다.
4. N자리의 A진수 값들을 10진수로 바꿔 sum에 더한다.
5. sum을 B진수로 바꾼 값을 각 자리수별로 저장할 ArrayList인 list를 생성한다.
6. sum을 B진수로 바꾼 값을 list에 한 자리씩 저장한다.
7. list에 저장된 값을 역순으로 출력한다.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine()," ");
int sum = 0;
// n개의 A진수 값을 10진수로 바꾸고 sum에 더함
for(int i=0;i<n;i++) {
sum += (Integer.parseInt(st.nextToken()))*Math.pow(A, n-1-i);
}
// B진수로 변환한 값을 저장할 ArrayList
ArrayList<Integer> list = new ArrayList<Integer>();
// 10진수값인 sum을 B진수로 바꾼 각 자리를 list에 추가함
while(sum!=0) {
list.add(sum%B);
sum /= B;
}
// list에 저장된 값을 역순으로 띄어쓰기 하나를 사이에 두고 출력함
for(int i=list.size()-1;i>=0;i--) {
System.out.print(list.get(i)+" ");
}
}
}
'[BOJ] - JAVA' 카테고리의 다른 글
[백준] 2089 : -2진수 JAVA 풀이 (0) | 2022.10.09 |
---|---|
[백준] 1676 : 팩토리얼 0의 개수 JAVA 풀이 (0) | 2022.10.09 |
[백준] 1212 : 8진수 2진수 JAVA 풀이 (0) | 2022.10.04 |
[백준] 1373 : 2진수 8진수 JAVA 풀이 (0) | 2022.10.04 |
[백준] 2745 : 진법 변환 JAVA 풀이 (0) | 2022.10.04 |