题目244-16进制的简单运算
2017-08-10 00:44
267 查看
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
//代码:
[html] view
plain copy
print?
#include<stdio.h>
int main(){
int T,x,y;
char ch;
scanf("%d",&T);
while(T--){
scanf("%x%c%x",&x,&ch,&y);
if(ch=='+')
printf("%o\n",x+y);
else
printf("%o\n",x-y);
}
return 0;
}
//最开始把问题想复杂了,用字符串数组模拟的,忘记用数据的基本格式类型就可以转化!!!!C语言的基本知识还是需要强化!!!!
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。
格式字符有d,o,x,u,c,s,f,e,g等。
如
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出,
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
scanf(控制字符,地址列表)
格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str);
另外一种做法,可以顺便学习C++的输入输出
#include<iostream> #include<iomanip> #include<cstdio> using namespace std; int main(){ ios::sync_with_stdio(false); int t;cin>>t; while(t--) { int x,y; char op; cin>>hex>>x>>op>>y; if(op == '+')cout<<setbase(8)<<(x+y)<<endl; else cout<<setbase(8)<<(x-y)<<endl; } return 0; }
▲setbase(int n) : 将数字转换为 n 进制.
如 cout<<setbase(8)<<setw(5)<<255<<endl;
cout<<setbase(10)<<setw(5)<<255<<endl;
cout<<setbase(16)<<255<<endl;
结果是:
(空格)(空格)377
(空格)(空格) 255
(空格)(空格) ff
hex 是16进制,oct是8进制,dec是10进制
相关文章推荐
- 题目244 16进制的简单运算
- nyoj 题目244 16进制的简单运算
- NYOJ题目244---16进制的简单运算
- 南阳oj-244-16进制的简单运算
- nyoj244 16进制的简单运算
- NYOJ-244-16进制的简单运算-2013年10月17日17:19:41
- nyoj244 16进制的简单运算
- 南阳 oj 16进制的简单运算 题目244 语言入门
- nyoj244 16进制的简单运算
- nyoj——244 16进制的简单运算
- 244 16进制的简单运算
- NYOJ-244-16进制的简单运算
- nyoj 244 16进制简单运算
- NYOJ 244题 16进制的简单运算
- NYoj 244 16进制的简单运算&&printf输出八进制十六进制
- nyoj244 16进制的简单运算
- 16进制的简单运算http://acm.nyist.net/JudgeOnline/problem.php?pid=244
- NYOJ 244 16进制的简单运算
- NYOJ244 16进制的简单运算
- NYOJ-244 16进制的简单运算