您的位置:首页 > 其它

nyoj 题目244 16进制的简单运算

2014-10-31 20:52 330 查看

http://acm.nyist.net/JudgeOnline/problem.php?pid=244

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

这题自己想了一下还准备一位一位算,有考虑了符号该怎么办。结果看了最优解,觉得自己还是太菜了,想想题目难度是1,也不会太难。继续努力吧。

这题用%x和%o就行了。做了这题要学到点东西

(1)要对各种进制重视起来,不光是二进制和十进制

(2)输入时如果两个数连着,但中间有符号,计算机也会看成两个数输入,如123+456,可以写成printf("%d %d",a,b);,没问题。

#include<stdio.h>
int main()
{
int N,a,b;
scanf("%d",&N);
while(N--)
{
scanf("%x %x",&a,&b);
//printf("%x %x\n",a,b);
printf("%o\n",a+b);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: