您的位置:首页 > 其它

杭电Hd 2031 进制转换

2013-01-03 20:35 447 查看
这是道进制转换的题目,这是第二次做,第一次憋了好久没写出来就过去了,这些天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();

 }

 

}

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: