华为笔试题3——进制转换

时间限制:1秒

空间限制:32768K

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

输入例子1:

0xA

输出例子1:

10

个人解法如下:

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        while(true){
            if(!sc.hasNext()){
                break;
            }else{
                String str = sc.next();
        int n = str.length() - 2;
        int sum = 0;
        for(int i = 2; i < str.length(); i++){
            sum *= 16;
            
            if(str.charAt(i) == 'A'){
                sum += 10;
            }else if(str.charAt(i) == 'B'){
                sum += 11;
            }else if(str.charAt(i) == 'C'){
                sum += 12;
            }else if(str.charAt(i) == 'D'){
                sum += 13;
            }else if(str.charAt(i) == 'E'){
                sum += 14;
            }else if(str.charAt(i) == 'F'){
                sum += 15;
            }else{
                String s = String.valueOf(str.charAt(i));
                sum += Integer.parseInt(s);
            }
        }
        System.out.println(sum);
            }
        }
        
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42259631/article/details/87930744
今日推荐