十六进制的简单运算

来源:互联网 发布:铁血论坛 知乎 编辑:程序博客网 时间:2024/05/18 01:16

16进制的简单运算

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。
输入
第一行输入一个正整数T(0<T<100000)
接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位
输出
每个表达式输出占一行,输出表达式8进制的结果。
样例输入
329+482318be+67844ae1-3d6c
样例输出
441141001026565

原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=244

#include <stdio.h>  
int main()  
{  
    int n;  
    int x,y;  
    char ch;  
    scanf("%d",&n);  
    while(n--)  
    {  
        scanf("%x%c%x",&x,&ch,&y);       //十六进制输入用%x
        if(ch == '+')  
        {  
            printf("%o\n",x+y);           //八进制用%o
        }  
        else  
        {  
            printf("%o\n",x-y);  
        }  
    }  
}  
1 0