您的位置:首页 > 其它

PAT乙级1022. D进制的A+B (20)

2017-12-13 17:06 197 查看

题目

链接https://www.patest.cn/contests/pat-b-practise/1022

输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。

输入格式:

输入在一行中依次给出3个整数A、B和D。

输出格式:

输出A+B的D进制数。

输入样例:

123 456 8

输出样例:

1103

思路

进制转化问题,和二进制一样的方法,需要注意和为0 的时候

用vector模拟入栈 出栈 判断栈空 获取栈顶元素 

代码

#include <iostream>
#include <vector>
using namespace std;

int main()
{
//freopen("in.txt" , "r" , stdin);//简单-----进制转化问题
int a,b,c,sum;
vector<int>v;
cin>>a>>b>>c;
sum=a+b;
if(sum==0)
cout<<"0";//需要考虑特殊情况 测试点3
else
{
while(sum)
{
v.push_back(sum%c);
sum=sum/c;
}
while(!v.empty())
{
cout<<v.back();//打印栈顶元素
v.pop_back();//栈顶元素删除
}
}
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: