您的位置:首页 > 编程语言 > Java开发

蓝桥杯--十六进制转八进制。。。

2014-01-28 20:25 246 查看
看到那个题,先开始选择的是 从十六进制转化为十进制,然后十进制转八进制,超时了,

然后开了两个锦囊。。转成二进制还是超时了。。。。。求帮助,求不超时。。

package lanqiaotest;

import java.util.Scanner;

 class sixteenturn8_1 {

    public static void main(String args[]){

    Scanner input=new Scanner(System.in);

    int n=input.nextInt();

    String a[]=new String
;

    for(int i=0;i<n;i++)

    {

    a[i]=input.next();

    }

    String temp="";

    String temp1="";

    for(int i=0;i<n;i++)

    {

    for(int j=0;j<a[i].length();j++)

    {

    switch(a[i].charAt(j)){

    case '0': temp="0000";break;

    case '1': temp="0001";break;

    case '2': temp="0010";break;

    case '3': temp="0011";break;

    case '4': temp="0100";break;

    case '5': temp="0101";break;

    case '6': temp="0110";break;

    case '7': temp="0111";break;

    case '8': temp="1000";break;

    case '9': temp="1001";break;

    case 'A': temp="1010";break;

    case 'B': temp="1011";break;

    case 'C': temp="1100";break;

    case 'D': temp="1101";break;

    case 'E': temp="1110";break;

    case 'F': temp="1111";break;

    }

    temp1=temp1+temp;

    }

    a[i]=temp1;

    temp="";

    temp1="";

   

    }

    for(int i=0;i<n;i++)

    {   int k=0;

    while(a[i].charAt(k)=='0'){

    a[i]=a[i].substring(1);

    }

    if(a[i].length()%3==1) a[i]="00"+a[i];

    if(a[i].length()%3==2) a[i]="0"+a[i];

    for(int j=0;j<a[i].length();j=j+3)

    {

    switch(a[i].substring(j,j+3))

    {

    case "000":temp="0";break;

    case "001":temp="1";break;

    case "010":temp="2";break;

    case "011":temp="3";break;

    case "100":temp="4";break;

    case "101":temp="5";break;

    case "110":temp="6";break;

    case "111":temp="7";break;

    }

    temp1=temp1+temp;

    }

    System.out.print(temp1+" ");

    temp1="";

    temp="";

    }

    }

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