题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {

    private static int result = 0;
    public static void main(String[] args) {

        String s = "";
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            s = in.next();
        }

        change(s);
        System.out.print(result);
    }


    private static void change(String s){

        s = s.substring(2);
        int len = s.length();
        for(int i=len-1;i>=0;i--){
            char c = s.charAt(i);
            match(c, len -i);
        }
        
    }

    private static void match(char c, int i){

        int b = 1;
        for(int j=1;j<i;j++){
            b *=16;
        }
        int a = 0;
        if(c > '9'){
            switch(c){
                case 'A':
                    a = 10;
                    break;
                case 'B':
                    a = 11;
                    break;
                case 'C':
                    a = 12;
                    break;
                case 'D':
                    a = 13;
                    break;
                case 'E':
                    a = 14;
                    break;
                case 'F':
                    a = 15;
                    break;
                default:
            }
        } else{
            a = c-48;
        }
        result += (a * b);
    }
}

#努力刷题下#
雪域灰灰刷题笔记 文章被收录于专栏

雪域灰灰刷题笔记

全部评论

相关推荐

笑着秋招😊:我一直认为努力有回报是一件很幸福很幸福的事情,恭喜你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务