PAT B1022 D进制的A+B
前言
正文
思路
直接使用除基取余法即可将十进制转换为D进制
参考题解
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
/*
由于本题1<D<=10,并且A和B都是非负整数,A+B的结果并
不会超过int的范围, 直接使用除基取余法
*/
int main(){
int A,B,sum,D;
cin>>A>>B>>D;
sum=A+B;
string res;
//注意特判
if(sum==0){
cout<<0<<endl;
}else{
while(sum!=0){
int temp=sum%D;
char t=temp+'0';
res+=t;
sum/=D;
}
//因为res中是从低位到高位,所以最后注意反转字符串
reverse(res.begin(),res.end());
cout<<res<<endl;
}
return 0;
}