题解 | #进制转换#
进制转换
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);
}
}
雪域灰灰刷题笔记 文章被收录于专栏
雪域灰灰刷题笔记
查看29道真题和解析