nyoj 244-16进制的简单运算 (scanf("%x%c%x", &a, &b, &c); printf("%o", a ± b))

244-16进制的简单运算


内存限制:64MB 时间限制:1000ms 特判: No
通过数:12 提交数:13 难度:1

题目描述:

现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。

输入描述:

第一行输入一个正整数T(0<T<100000)
接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位

输出描述:

每个表达式输出占一行,输出表达式8进制的结果。

样例输入:

3
29+4823
18be+6784
4ae1-3d6c

样例输出:

44114
100102
6565

C/C++  AC:

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <stack>
 7 #include <set>
 8 #include <map>
 9 #include <queue>
10 #include <climits>
11 #define PI 3.1415926
12 
13 using namespace std;
14 int n, A[110];
15 
16 int main()
17 {
18     cin >>n;
19     while (n --)
20     {
21         int a, b;
22         char c;
23         scanf("%x%c%x", &a, &c, &b);
24         // scanf("%X", &a);   针对的是字母为大写的16进制
25         switch (c)
26         {
27         case '+':
28             printf("%o
", a + b); break;  // octal
29         default:
30             printf("%o
", a - b);
31         }
32     }
33 }
原文地址:https://www.cnblogs.com/GetcharZp/p/9334555.html