16進位的簡單運算時間限制:1000 ms | 記憶體限制:65535 KB難度:1
-
描述
-
現在給你一個16進位的加減法的運算式,要求用8進位輸出運算式的結果。
-
輸入
-
第一行輸入一個正整數T(0<T<100000)
接下來有T行,每行輸入一個字串s(長度小於15)字串中有兩個數和一個加號或者一個減號,且運算式合法並且所有運算的數都小於31位
-
輸出
-
每個運算式輸出佔一行,輸出運算式8進位的結果。
-
範例輸入
-
329+482318be+67844ae1-3d6c
-
範例輸出
-
441141001026565
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));}}}}}