PAT_B 1022 D进制的A+B
PAT_B 1022 D进制的A+B
分析
按照题目要求进行处理即可,进制转换的方法为:待转换数每次除基数(进制数)后记录余数直至待转换数为0,余数的逆序即为转换进制后的结果
题目的描述
输入两个非负 10 进制整数 A 和 B \((≤2^{30}−1)\),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
鸣谢用户谢浩然补充数据!
AC的代码
#include<bits/stdc++.h>
using namespace std;
int main(){
long long A,B,D;
cin>>A>>B>>D;
//vector<long long> num;
string num;
A+=B;
if(A==0){
cout<<0<<endl;
return 0;
}
while(A){
//num.push_back(A%D);
num+='0'+A%D;
A/=D;
}
// for(auto i=num.rbegin();i!=num.rend();i++){
// cout<<(*i);
// }
// cout<<endl;
reverse(num.begin(),num.end());
cout<<num<<endl;
return 0;
}
本文来自博客园,作者:ghosteq,转载请注明原文链接:https://www.cnblogs.com/ghosteq/p/15841245.html