这是道进制转换的题目,这是第二次做,第一次憋了好久没写出来就过去了,这些天ACM集训,又遇到了,做了出来,做完后看看也不难,就是抓住求进制转换的定义,处理好负数和大于10的情况,就没问题了。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Hd2031 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();//数据n
int r=sc.nextInt(); //r进制
int a=n;
int b=r;
if(a<0){ //负数情况
System.out.print("-");
a=-a;
}
List list=new ArrayList();
while(a!=0){
r=a%b;
a=a/b;
if(r>=10&&r<=16){ //输出大于10的情况
if(r==10)
list.add("A");
if(r==11)
list.add("B");
if(r==12)
list.add("C");
if(r==13)
list.add("D");
if(r==14)
list.add("E");
if(r==15)
list.add("F");
}
else list.add(r);
}
for(int i=0;i<list.size();i++){
System.out.print(list.get(list.size()-i-1));
}
System.out.println();
}
}
}