题解 | 进制转换
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String string = in.next(); int sum = 0; int num = 0; for (int i = string.length() - 1; i >= 2; i--) { Character c = string.charAt(i); if (c >= 'A' && c <= 'F') { sum += (c - 'A' + 10) * Math.pow(16, num); } else { sum += (c - '0') * Math.pow(16, num); } num++; } System.out.println(sum); } }
这题直接根据进制转换规则去做就好了,A到F对应10-15,直接用c-'A'+10就可以完成转换,也可以直接把转换规则写到map映射规则中。