洛谷链接:https://www.luogu.com.cn/problem/P1143
解题思路:先转换为10进制,再转换为要求 的进制数
import java.util.Scanner;
public class Main {
static int n=0,m=0;
static String s="";
static char[] a = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
static char[] b = new char[1000];
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
n=in.nextInt();
s=in.next();
m=in.nextInt();
in.close();
int sum=0; //转换为十进制,保存在sum中
for (int i = s.length() - 1; i >= 0; i--) {
for (int j = 0; j < a.length; j++) {
if (s.charAt(i) == a[j]) {
sum += j * Math.pow(n, s.length() - 1 - i); //n 的几次方
}
}
}
int j=0;
while(sum>0) {
b[j]=a[sum % m];
sum/=m;
j++;
}
for (int i = j - 1; i >= 0; i--) {
System.out.print(b[i]);
}
}
}