題意為進制轉換,Java的大數類就像是作弊
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
while(n!=0){
int a=in.nextInt();
int b=in.nextInt();
String c=in.next();
BigInteger sum=BigInteger.ZERO;
for(int i=0;i<c.length();i++){
sum=sum.multiply(BigInteger.valueOf(a)).add(BigInteger.valueOf(getnum(c.charAt(i))));
}
String cc="";
while(!sum.equals(BigInteger.ZERO)){
cc=setchar(sum.mod(BigInteger.valueOf(b)).intValue())+cc;
sum=sum.divide(BigInteger.valueOf(b));
}
if(cc.equals("")) cc="0";
System.out.println(a+" "+c);
System.out.println(b+" "+cc);
System.out.println();
n--;
}
}
static int getnum(char m){
if(m>='0' && m<='9') return m-'0';
else if(m>='A' && m<='Z') return m-'A'+10;
else return m-'a'+36;
}
static char setchar(int n){
if(n<=9) return (char)(n+'0');
else if(n<=35) return (char)(n-10+'A');
else return (char)(n-36+'a');
}
}