(JAVA對進制的運算)A + B Again hdu2057 要復習
阿新 • • 發佈:2018-09-19
any each 字符 test case miss cal ref con inpu
Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.
Easy ? AC it
!
Each case consists of two hexadecimal integers A and B in a line seperated by a blank.
The length of A and B is less than 15.
Sample Input
+A -A
+1A 12
1A -9
-1A -12
1A -AA
Java代碼:
(置頂,復習)A + B Again
鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2057
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 35905 Accepted Submission(s):
14614
Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.
Input The input contains several test cases, please process to the end of the file.
Each case consists of two hexadecimal integers A and B in a line seperated by a blank.
The length of A and B is less than 15.
Output For each test case,print the sum of A and B in hexadecimal in one line.
Sample Output 0 2C 11 -2C -90
Author linle 註: 此題就是利用Long.parseLong()和Long.toHexString()的 replaceAll("\\+",""),是去除其中的‘+’,因為進制計算不支持帶“+”的某一進制的數字字符串,‘-’可以,同時還需要判斷正數負數,從而利用Long.toHexString()。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner inScanner = new Scanner(System.in); while(inScanner.hasNext()) { long l = Long.parseLong(inScanner.next().replaceAll("\\+", ""),16) + Long.parseLong(inScanner.next().replaceAll("\\+", ""),16); if(l<0) { System.out.println("-" + Long.toHexString(-l).toUpperCase()); } else { System.out.println(Long.toHexString(l).toUpperCase()); } } } }
(JAVA對進制的運算)A + B Again hdu2057 要復習