1022 D进制的A+B (20分)
输入两个非负 10 进制整数 A 和 B (≤2
30
−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
代码:
源码地址:https://github.com/MrHaddis/PAT1022
#include <stdio.h>
#include <math.h>
//MrHaddis
//https://github.com/MrHaddis/PAT1022
int main() {
//数A 数B a+b的和
long a, b, sum;
//进制
int d;
//存放余数
int sumArray[100];
//定义下标
int count = 0;
//获取输入
scanf("%ld %ld %d", &a, &b, &d);
//求和
sum = a + b;
//为0的时候 直接输入0
if (sum == 0) {
printf("0");
return 0;
}
//循环求余数并存储
while (sum != 0) {
sumArray[count++] = sum % d;
//每求一次就除以10
sum = sum / d;
}
//倒序输出结果
for (int i = count - 1; i >= 0; i--) {
printf("%d", sumArray[i]);
}
return 0;
}