這是在刷杭電一道水題中遇到的,當時用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