题解 | 进制转换
进制转换
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);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String s = in.nextLine();
String r = "";
for (int i = s.toCharArray().length ; i > 2 ; i--) {
r += s.charAt(i-1);
}
int sum = 0;
for (int j = 0 ; j < r.toCharArray().length; j++) {
if (Character.isDigit(r.charAt(j))) {
sum += Character.getNumericValue(r.charAt(j)) * power(16, j);
} else if ('A' == r.charAt(j)) {
sum += 10 * power(16, j);
} else if ('B' == r.charAt(j)) {
sum += 11 * power(16, j);
} else if ('C' == r.charAt(j)) {
sum += 12 * power(16, j);
} else if ('D' == r.charAt(j)) {
sum += 13 * power(16, j);
} else if ('E' == r.charAt(j)) {
sum += 14 * power(16, j);
} else if ('F' == r.charAt(j)) {
sum += 15 * power(16, j);
}
}
System.out.println(sum);
}
}
public static int power(int base, int exponnet) {
int result = 1;
for (int i = 0 ; i < exponnet ; i++) {
result *= base;
}
return result;
}
}

