题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner; import java.lang.Math; // 注意类名必须为 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 str = in.nextLine(); /* int sum表示最终结果 索引i处的权重,16的str.length()-i-1次方 '0'~'9' --> 'char'-'0' 'A'~'F' --> 'char'-'A'+10 */ int thTimes = str.length(); int sum =0; for(int i=2; i<thTimes; i++) { int x = -1; int y = thTimes-i-1; if (str.charAt(i)>='0' && str.charAt(i)<='9') { x = str.charAt(i)-'0'; sum += x*(int)Math.pow(16,y); } else{ x = str.charAt(i)-'A'+10; sum += x*(int)Math.pow(16,y); } } System.out.println(sum); } } }