PAT乙级1022 D 进制的A + B(Cpp)
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
代码如下:
#include <cstdio>
using namespace std;
int main() {
long a, b, n;
int d, num[1000];
int i = 0;
scanf("%ld %ld %d", &a, &b, &d);
n = a + b;
if (d != 10) {
do { //若用while循环则会出现a,b均为0且d不为10时输出为空的情况
num[i] = n % d;
n = n / d;
i++;
} while (n != 0)
} else printf("%ld", n);
for (int j = i - 1; j >= 0; j--) {
printf("%d", num[j]);
}
return 0;
}