1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A A A 和 B ( ≤ 2 30 − 1 ) B(≤2^{30}−1) B(≤230−1),输出 A + B A+B A+B 的 D ( 1 < D ≤ 10 ) D(1<D≤10) D(1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A A A、 B B B 和 D D D。
输出格式:
输出 A + B A+B A+B 的 D D D 进制数。
输入样例:
123 456 8
输出样例:
1103
解题思路
- 对
num
执行进制转换 储存在str
里 - 注意进制转换循环最少要执行一次 因为可能出现
num
为0
的情况
AC代码
#include <iostream>
#include <algorithm>
using namespace std;
string str;
int main()
{
int A, B, D;
cin >> A >> B >> D;
int num = A + B;
do
{
str.push_back(num % D + '0');
num /= D;
} while (num);
reverse(str.begin(), str.end());
cout << str << endl;
return 0;
}