题目链接: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
题目分析:
计算两个数的和,并且以指定进制输出这个和。
这里要注意如果和为0要输出0。
要进行进制转换,10进制转别的进制,不断进行模运算直到最后模不动了,倒着把余数输出即可
题目代码:
#include <iostream>
using namespace std;
int main(){
long long A, B;
int D, i, num[1000];//用数组num记录每次运算得到的余数
cin >> A >> B >> D;
A += B;
if(A==0){//如果检测到和为0则输出0
cout << 0;
return 0;
}
while(A > 0){//取余数
num[i++] = A % D;
A /= D;
}
for(int j=i-1; j>=0; j--)
cout << num[j];//倒序输出
return 0;
}
bilibili:羊卓的杨