1022 D进制的A+B (20 分)
1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
思路
将十进制数转换为Q进制数z:采用除基取余法
int z[40], num = 0;//数组z存放Q进制数y的每一位,num为位数
do{
z[num++] =y % Q;
y = y / Q;
}while(y != 0);
代码
- 数组z[i]注意要逆向输出
- 注意当a+b为0时,特判输出
#include<stdio.h>
int main(){
int a, b, sum, d;
scanf("%d%d%d", &a, &b, &d);
int z[35];
int num = 0;
sum = a + b;
do{
z[num++] = sum % d;
sum = sum / d;
}while(sum != 0);
if(sum = 0) printf("0");
else{
for(int i = num - 1; i >= 0; i--){
printf("%d",z[i]);
}
}
return 0;
}