这两天都在找JAVA高精度的题做,主要是想偷懒,而且JAVA确实做ACM很强大,所以就多练练JAVA做题。
A了好几道水题,这道也挺水,结果读题读错了!!唉呀 ,英语是硬伤啊。。。
题意:进制转换,但将0的部分去掉用进制数来表示。
思路很简单,看代码就行了。结果因为读错题花了一晚上的代价。。。
import java.math.*; import java.util.*; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigInteger B,x,tmp,one; int p=0; Scanner cin = new Scanner(System.in); B=cin.nextBigInteger(); x=cin.nextBigInteger(); tmp=BigInteger.ONE; one=BigInteger.ONE; while(x.compareTo(tmp)>=0) { x=x.subtract(tmp); tmp=tmp.multiply(B); p++; } while(p!=0) { tmp=tmp.divide(B); System.out.print(x.divide(tmp).add(one)); x=x.mod(tmp); p--; } System.out.println(); System.exit(0); } }