BASIC-7
单独计算每位即可
BASIC-8
一样简单
BASIC-9
五位数和六位数单独讨论,依然很简单
BASIC-10
十进制整型里可以直接转化为十六进制
Integer.toHexString(n)
BASIC-11
哇卡了半天发现我居然输出错了位置哈哈气死我了
由于我用了字符串存储输入的十六进制,因此按位读的时候需要将每一位转化为数字形式,不仅仅是A-F的字母,还有‘0’~‘9’也是以字符的形式存在的,因此每一位都需要转化。同时需要使用pow方法计算每位乘以16的几次方。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
int i;
long n = 0;
for (i = 0; i < s.length(); i++) {
int num;
if (s.charAt(i) >= 'A' && s.charAt(i) <= 'F') {
num = (int) s.charAt(i) - (int) 'A' + 10;
} else {
num = (int) s.charAt(i) - (int) '0';
}
n += (long) num * Math.pow(16, s.length() - i - 1);
// System.out.print(n); 刚开始居然放在这里了哈哈傻子不是你还是谁
}
System.out.print(n);
}
}
提交之后还是不对,查看数据后发现是超限了,所以用了长整型存储。
and……前几天没动静是去搞大西瓜的代码了,没有偷懒,没有偷懒,没有偷懒(除了昨天)