題目連結:http://poj.org/problem?id=1220
還真不習慣。。。。。。
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 stubScanner 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');elsechh = (char) (c - 36 + 'a');System.out.print(chh);}System.out.print("\n\n");}}}