java 1220

来源:互联网 发布:淘宝买dnf号的靠谱吗 编辑:程序博客网 时间:2024/06/06 04:20

进制转化.


java敲得不顺手。


import java.io.*;import java.util.*;import java.math.*;import java.text.*;public class Main {public static void main(String arg[]){ Scanner cin=new Scanner(System.in);String s,st;int T,a,b;int num[]=new int[100005];int h;char[] ch=new char[100005];BigInteger tot,x;T=cin.nextInt();while(T!=0){T--;a=cin.nextInt();b=cin.nextInt();s=cin.next();   //字符串输入!!!tot=new BigInteger("0");for(int i=0;i<s.length();i++){tot=tot.multiply(BigInteger.valueOf(a)); //tot*=10;if(s.charAt(i)>='a') tot=tot.add(BigInteger.valueOf(s.charAt(i)-'a'+36));  //tot+=;else if(s.charAt(i)>='A') tot=tot.add(BigInteger.valueOf(s.charAt(i)-'A'+10));else tot=tot.add(BigInteger.valueOf(s.charAt(i)-'0'));//h=s.charAt(i)-'a';//System.out.println(i+" : "+tot+" "+h);}//System.out.println("ans="+tot);int n=0;while(true){if(tot.compareTo(BigInteger.valueOf(0))==0) break;x=tot.mod(BigInteger.valueOf(b));tot=tot.divide(BigInteger.valueOf(b));num[n++]=x.intValue();}for(int i=0;i<n;i++)if(num[i]>=36) ch[n-i-1]=(char)(num[i]-36+'a');  // 强制转化,这个地方老是错。。else if(num[i]>=10) ch[n-i-1]=(char)(num[i]-10+'A');else ch[n-i-1]=(char)(num[i]+'0');  System.out.println(a+" "+s);System.out.print(b+" ");if(s.compareTo("0")==0) System.out.print("0");   //错了1次额else for(int i=0;i<n;i++) System.out.print(ch[i]);System.out.println(); System.out.println(); }}}


0 0
原创粉丝点击