题解 | #又一版 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;
}

全部评论

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务