题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
思路:简单的进制转换题,在牛客就是提交不成功,代码和图
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int result = 0,pow = 0;
while(sc.hasNext()){
String s = sc.nextLine();
s = s.substring(2);
for (int i = s.length()-1;i >= 0;i--){
//是数字就按数字的来处理
if (Character.isDigit(s.charAt(i))){
result = result + (s.charAt(i)-48) * (int)Math.pow(16,pow);
//否则就按A-F处理
}else{
result = result + (s.charAt(i)-55) * (int)Math.pow(16,pow);
}
pow++;
}
System.out.println(result);
}
}
}
不通过的测试用例:
用牛客的自测:确定不是在打自己脸吗
希望有大神能看出来什么问题的,或是觉得我的代码存在优化问题的,欢迎留言,万分感谢