题目:
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
代码:
#include<iostream>
using namespace std;
int main(){
int A, B;
int D;
cin >> A >> B >> D;
int C = A+B;
int i=0;
int num[31] = {0};
//每个输入数最多为2的30次-1,两个输入数相加,最多为2的32次-2,
//因输出位数最多的是二进制数,故输出最多32位。
//二进制数最多32位,那么十进制数必定小于32位,故数据类型用int即可。
while(C/D){ // C如果为 0,防止直接退出程序没有输出结果
num[i] = C%D;
i++;
C/=D;
}
num[i] = C; //i而不是i++
for(int j=i;j >= 0;j--){
cout << num[j];
}
cout << endl;
return 0;
}