您的位置:首页 > 其它

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

2015-05-14 10:30 274 查看
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。

输入格式:

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

输出格式:

输出A+B的D进制数。
输入样例:
123 456 8

输出样例:
1103


这个题目,自己提交了三遍,一直没有AC,到最后,发现,原来是自己再结果为零 的时候没有判断,这样在输出vector的时候,会出现段错误。

显然是自己没有考虑周到。

代码如下

#include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;

int main(void)
{
int A=0,B=0,D=0;
int res=0;
vector<int> v;

cin>>A>>B>>D;
res=A+B;
if(res==0)
{
cout<<res;
}
else
{
while(res)
{
v.push_back(res%D);
res=res/D;
}
/*	for(vector<int>::iterator ip=v.end()-1;ip>=v.begin();)
{
cout<<*ip--;
}
*/
for(int i=v.size()-1; i>=0; i--)
{
cout<<v[i];
}
}

return 0;
}


在下面的这段话,可以方便的进行vector的操作,如下。

for(vector<int>::iterator ip=v.end()-1;ip>=v.begin();)
{
cout<<*ip--;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: