题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.HashMap; import java.util.Map; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); in.useDelimiter("\n"); Map<String, Integer> radix = new HashMap<String, Integer>() {{ put("A", 10); put("B", 11); put("C", 12); put("D", 13); put("E", 14); put("F", 15); }}; // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String s = in.next(); char[] chars = s.toCharArray(); int result = 0; for (int i = chars.length - 1; i >= 2; i--) { char c = chars[i]; int bit = chars.length - i; int bitNum = 1; for (int j = 1; j <= bit - 1; j++) { bitNum *= 16; } result += bitNum * (radix.get(c + "") == null ? Integer.parseInt(c + "") : radix.get(c + "")); } System.out.println(result); } } }