poj 1220 java大数类
[java]
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int icase;
int b1;
int b2;
String str;
char ch;
int top = 0;
int c;
char chh;
int tmp;
BigInteger sum,a;
BigInteger t;
int[] stack = new int[2000];
// 余数入栈
icase = input.nextInt();
while ((icase--) != 0) {
a = BigInteger.valueOf(1);
sum = new BigInteger("0");
b1 = input.nextInt();
b2 = input.nextInt();
str = input.next();
for (int i = str.length()-1; i >= 0 ; i--) { //先化成10进制
tmp = 0;
ch = str.charAt(i);
if (ch <= '9' && ch >= '0') {
tmp = ch - '0';
} else if (ch >= 'A' && ch <= 'Z') {
tmp = ch - 'A' + 10;
} else if (ch >= 'a' && ch <= 'z') {
tmp = ch - 'a' + 36;
}
sum = sum.add(BigInteger.valueOf(tmp).multiply(a));
a = a.multiply(BigInteger.valueOf(b1));
}
System.out.print(b1 + " " + str + "\n" + b2 + " ");
BigInteger zero = BigInteger.valueOf(0);
//sum != BigInteger.valueOf(0)这样不对 java不能这样比较两个对象是否相等吧
//神马都是类。。。。。。。。。。。。受不了,不习惯
while (sum.compareTo(zero) != 0) {
t = sum.mod(BigInteger.valueOf(b2));
stack[++top] = t.intValue();
sum = sum.divide(BigInteger.valueOf(b2));
}
if(top == 0)
System.out.print(0);
while (top != 0) {
c = stack[top--];
if (c < 10)
chh = (char) (c + '0');
else if (c < 36)
chh = (char) (c - 10 + 'A');
else
chh = (char) (c - 36 + 'a');
System.out.print(chh);
}
System.out.print("\n\n");
}
}
}
作者 Bill_Ming
补充:软件开发 , Java ,