这是在刷杭电一道水题中遇到的,当时用java没思路,便查了查题解,用到了
Java.lang.Long.parseLong()方法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057
代码如下:
import java.util.Scanner; public class Main { Main(){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ long l=Long.parseLong(sc.next().replaceAll("\+",""),16)+Long.parseLong(sc.next().replaceAll("\+",""),16); if(l<0){ System.out.println("-"+Long.toHexString(-l).toUpperCase()); } else System.out.println(Long.toHexString(l).toUpperCase()); } } public static void main(String[] args) { new Main(); } }
了解下Long.parseLong(String s,int n),s 这是一个包含long表示要解析的字符串,n 是进制数,它是将第一个参数用第二个参数进制来表示,如果不写第二个参数的话默认是十进制,例如:
parseLong("0", 10) returns 0L
parseLong("-BB", 16) returns -187L
更多详细关于java.lang的可以看下:https://www.yiibai.com/java/lang/long_parselong_radix.html