洛谷P1143

P1143 进制转换

水一下

点击查看代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n; cin >> n;
    string s; cin >> s;
    int m; cin >> m;
    reverse(s.begin(), s.end());
    long long ck = 0;
    long long base = 1;
    for(char c : s) {
        if(c >= '0' && c <= '9') {
            ck += (c - '0') * base;
        } else {
            ck += (c - 'A' + 10) * base;
        }
        base *= n;
    }
    string ans = "";
    while(ck != 0) {
        int l = ck % m;
        if(l < 10) ans += l + '0';
        else ans += 'A' + l - 10;
        ck /= m;
    }
    reverse(ans.begin(), ans.end());
    cout << ans << '\n';
    return 0;
}
posted @ 2025-05-19 02:47  Chuan81  阅读(8)  评论(0)    收藏  举报