C++一道简单的问题

img


凑字数 爱的你上课看到内地新疆地震局降低成本控制下不咸不淡经典的黑色家

#include <iostream>
#include <string>

using namespace std;

string convert(int num, int base) {
    static const char charset[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int q = num / base;
    int r = num % base;
    if (q == 0) {
        return string(1, charset[r]);
    } else {
        return convert(q, base) + charset[r];
    }
}

int main() {
    string num;
    int K, T;
    cin >> num >> K >> T;

    int decimal = 0;
    int p = 1;
    for (int i = num.length()-1; i >= 0; i--) {
        char c = num[i];
        int digit = 0;
        if (c >= '0' && c <= '9') {
            digit = c - '0';
        } else if (c >= 'A' && c <= 'Z') {
            digit = c - 'A' + 10;
        }
        decimal += digit * p;
        p *= K;
    }

    string result = convert(decimal, T);
    cout << result << endl;

    return 0;
}