题解 | #又一版 A+B#
又一版 A+B
https://www.nowcoder.com/practice/9255c05d45b8406c9b588d7c57aa920b
- 按照十进制转二进制的思路即可:
- 先将余数保存到向量(逆序输出)或栈(顺序出栈),之后将数值除以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; }