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

来源:互联网 发布:hifi耳机 知乎 编辑:程序博客网 时间:2024/06/16 03:46


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进制的结果。
样例输入
329+482318be+67844ae1-3d6c
样例输出
441141001026565

这题自己想了一下还准备一位一位算,有考虑了符号该怎么办。结果看了最优解,觉得自己还是太菜了,想想题目难度是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;}

0 0
原创粉丝点击