- 按照十进制转二进制的思路即可:
- 先将余数保存到向量(逆序输出)或栈(顺序出栈),之后将数值除以m直到为0为止
#include "iostream"
#include "algorithm"
#include "vector"
using namespace std;
vector<int> func_135(int m, long long int num) {
vector<int> result; // 1-10进制数,无需使用字母表示
if (num == 0) result.push_back(0); // 单独处理0的情况
while (num) {
result.push_back(num % m); // 保存余数
num /= m; // 除以进制数
}
reverse(result.begin(), result.end()); // 反转或逆序输出均可
return result;
}
int main() {
int m, a, b;
while (cin >> m && m) { // m = 0 时退出
cin >> a >> b; // a,b 均在int32范围内,无需使用字符串
vector<int> result = func_135(m, a + b); // 函数调用
for (int i = 0; i < result.size(); ++i) // 输出
cout << result[i];
cout << endl;
}
return 0;
}