16进制的简单运算
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。
-
输入
-
第一行输入一个正整数T(0<T<100000)
接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位
输出
- 每个表达式输出占一行,输出表达式8进制的结果。 样例输入
-
3 29+4823 18be+6784 4ae1-3d6c
样例输出
-
44114 100102 6565
-
第一行输入一个正整数T(0<T<100000)
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int t = input.nextInt();
while(t-->0){
String n = input.next();
for(int i=0; i<n.length(); i++){
if(n.charAt(i) == '+'){
String []str = n.split("[+]");
String a = Integer.valueOf(str[0],16).toString();
int inta = Integer.valueOf(a);
String b = Integer.valueOf(str[1],16).toString();
int intb = Integer.valueOf(b);
System.out.println(Integer.toOctalString(inta+intb));
}
else if(n.charAt(i) == '-'){
String []str1 = n.split("[-]");
String a = Integer.valueOf(str1[0],16).toString();
int inta = Integer.valueOf(a);
String b = Integer.valueOf(str1[1],16).toString();
int intb = Integer.valueOf(b);
System.out.println(Integer.toOctalString(inta-intb));
}
}
}
}
}