0
点赞
收藏
分享

微信扫一扫

进制A+B [牛客网]


进制A+B [牛客网]

  • ​​1.题目​​
  • ​​2.分析​​
  • ​​3.代码​​
  • ​​方法1:scanf %o %x​​
  • ​​方法2:stringstream​​
  • ​​4.总结​​
  • ​​5.更新日志​​

1.题目

​​题目链接​​

题目描述

输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231 ~ 231-1)。

输入描述:
一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。
输出描述:
一行,a+b的十进制结果。

示例1
输入
0x12 05
输出
23

备注:
十六进制Hexadecimal一般以0x开头,例如0xFF。
八进制Octal,一般以0开头,例如07。

2.分析

学会使用scanf

3.代码

方法1:scanf %o %x

#include <iostream>
using namespace std;
int main()
{
int a,b;
scanf("%x%o",&a,&b);
cout<<a+b;
return 0;
}

进制A+B [牛客网]_进制

方法2:stringstream

#include <iostream>
using namespace std;
#include <sstream>
int main()
{
string s;
int res=0;
int t;
stringstream s1;
cin>>s;
s1<<hex<<s; //16进制读入
s1>>t; //转换为10进制
res+=t;

stringstream s2; //s1未清空,所以再重建一个stringstream
cin>>s;
s2<<oct<<s; //8进制读入
s2>>t; //转换为10进制
res+=t;

cout<<res;
return 0;
}

进制A+B [牛客网]_进制_02

4.总结

灵活使用scanf

5.更新日志

2022.7.26

欢迎交流、讨论、指正~
不正确、不理解之处欢迎评论留言~


举报

相关推荐

0 条评论