题目描述
输入两个非负十进制整数A和B(≤20-1)以及D(进制数),输出A+B的D(1<D≤10)进制数。
输入格式
在一行中依次给出三个整数A、B和D(进制数)。
输出格式
A+B的D进制数。
输入样例
123 456 8
输出样例
1103
思路
先计算A+B(此时为十进制),然后把结果转换为D进制,而十进制转换为D进制的过程可以直接进行“除基取余法”。
程序代码:
#include<cstdio>
int main(){
int a,b,d;
scanf("%d%d%d",&a,&b,&d);
int sum=a+b;
int ans[31],num=0;//ans存放D进制的每一位
do {//进制转换
ans[num++] = sum % d;
sum /=d;
} while(sum!=0);
for(int i=num-1;i>=0;i--){//从高位到地位输出
printf("%d",ans[i]);
}
return 0;
}
运行结果: