题解 | #进制转换2#

进制转换2

https://www.nowcoder.com/practice/ae4b3c4a968745618d65b866002bbd32

#include <iostream>
#include <string>
#include <stack>

using namespace std;

char intToChar(int x) {
    if (x < 10) {
        return x + '0';
    } else {
        return x - 10 + 'a';
    }
}

int charToInt(char c) {
    if (c >= '0' && c <= '9') {
        return c - '0';
    } else {
        return c - 'A' + 10;
    }
}

int main() {
    int m, n;
    cin >> m >> n;
    string str;
    cin >> str;
    long long number = 0;
    for (char i : str) {
        number *= m;
        number += charToInt(i);
    }
    stack<char> answer;
    while (number != 0) {
        answer.push(intToChar(number % n));
        number /= n;
    }
    while (!answer.empty()) {
        cout << answer.top();
        answer.pop();
    }
    cout << endl;
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:46
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-29 14:13
点赞 评论 收藏
分享
水色铃音:可以去找射频相关的岗位,比如圣邦微?或者像做产品的,比如xiaomi,oppovivo之类的,都需要天线调试的工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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