1022 D进制的A+B
题目:
输入两个非负 10 进制整数 A 和 B (≤2^30 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
代码:
#include<iostream>
#define MAX 1000
using namespace std;
int main() {
long A, B,r;
int D;
cin >> A >> B >> D;
int res[MAX];//用来存放结果的数组
int n;//res数组的长度
int i=0;
r = A + B;
if (r == 0) {
cout << 0;
}
else {
while (r != 0) {
res[i] = r % D;
r = r / D;
i++;
}
n = i;
for (i = n - 1; i >= 0; i--) {
cout << res[i];
}
}
}
//注意:进制之间的转化方法
//注意A=0且B=0的情况
注意:
①进制之间的转化方法
②注意A=0且B=0的情况,因为题目上说非负 10 进制整数 A 和 B,所以要考虑到这种情况。