题解 | #进制转换2# 模板

进制转换2

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

#include <bits/stdc++.h>

using namespace std;

string convert(string s, int m, int b) {
    string ans; 
    while (!s.empty()) {
        int k = 0;
        bool leadingZero = true;
        string temp;
        for (int i = 0; i < s.size(); i++) {
            int digit = (isdigit(s[i]) ? s[i] - '0' : s[i] - 'A' + 10);
            int t = (k * m + digit) % b;
            int quotient = (k * m + digit) / b;
            k = t;
            if (quotient != 0 || !leadingZero) {
                temp += (quotient < 10 ? quotient + '0' : quotient - 10 + 'A');
                leadingZero = false;
            }
        }
        ans += (k < 10 ? k + '0' : k - 10 + 'A');
        s = temp;
    }
    reverse(ans.begin(), ans.end());
    return ans.empty() ? "0" : ans;
}



int main(){
	int m,n;
	string s;
	
	cin >> m >> n;
	cin >> s;
	
	string answer = convert(s,m,n);	
	cout << answer << endl;
	return 0;
}

全部评论

相关推荐

01-02 21:17
已编辑
西安理工大学 后端
程序员小白条:项目不太重要,你的优势的算法竞赛,然后多背相关的八股文,项目可以不作为重点考虑,面试可能就简单带过项目就行了,你可以直接写简历,背项目相关的八股文就行,也不用自己做,时间紧张的情况下,性价比最高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务