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

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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