您的位置:首页 > 其它

NYOJ 进制转换 244

2013-07-26 13:23 316 查看

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

 

 

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));
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: