PAT.1022. D进制的A+B
题目
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
输入两个非负10进制整数A和B(<=2 <nobr aria-hidden="true"> 3 </nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"> <msup> <mn> 3 </mn> </msup> </math> <nobr aria-hidden="true"> 0 </nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"> <msup> <mn> 0 </mn> </msup> </math>-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
分析:
对 A+B 的和进行取余做除直到为0,将取余结果放在一个字符串中,最后逆序输出字符串,不过需要注意的是当 A+B 为0的情况
代码(cpp)
#include<iostream>
using namespace std;
int main(){
int a,b,d,sum=0;
int k=0;
char c[60+2];
cin>>a>>b>>d;
sum=a+b;
if(sum==0){
cout<<0;
return 0;
}
while(sum!=0){
c[k++] = sum%d + '0';
sum/=d;
}
c[k]='\0';
for(int i=k-1;i>=0;i--)
cout<<c[i];
return 0;
}