16进制的简单运算
描述现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。
- 输入
- 第一行输入一个正整数T(0<T<100000)
接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位 - 输出
- 每个表达式输出占一行,输出表达式8进制的结果。
- 样例输入
-
3 29+4823 18be+6784 4ae1-3d6c
- 样例输出
-
44114 100102 6565
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner=new Scanner(System.in); 6 int T; 7 String s; 8 int number1; 9 int number2; 10 int sum; 11 String sumString; 12 String words[]; 13 String regex; 14 15 T=scanner.nextInt(); 16 17 while(true){ 18 if(T==0) 19 break; 20 T--; 21 22 s=scanner.next(); 23 24 if(s.contains("+")){ 25 regex="[+]"; 26 } 27 else 28 regex="[-]"; 29 30 words=s.split(regex); 31 number1=Integer.parseInt(words[0], 16); 32 number2=Integer.parseInt(words[1],16); 33 34 if(s.contains("+")){ 35 sum=number1+number2; 36 } 37 else 38 sum=number1-number2; 39 40 sumString=Long.toOctalString(sum); 41 System.out.println(sumString); 42 } 43 } 44 }