题解 | #进制转换2#

进制转换2

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

#include <iostream>
#include <vector>
using namespace std;

//思路:现将M进制转成10进制,在从10进制转成N进制
//当进制数大于10时,涉及到字符和数字之间的转换

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

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

int main() {
    int m, n;
    cin >> m >> n;
    string str;
    cin >> str;
    vector<char> res;

    long long number = 0;

    //转成10进制
    for(int i = 0; i < str.length(); i ++){
        number = number * m + charToInt(str[i]);
    }

    //转成n进制
    while (number != 0) {
        res.push_back(intToChar(number % n));
        number /= n;
    }

    for(int i = res.size() - 1; i >= 0; i --)
        cout << res[i];
    return 0;


}

全部评论

相关推荐

MingoTree:看不出你你的技术栈,想找什么工作,然后课设项目别写上去了,自我评价删了,前后端你想好你要干啥,这种简历投上去秒挂的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务