#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

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

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

string convertToDecimal(string num, int base) {
    int decimal = 0;
    int power = 1;
    for (int i = num.size() - 1; i >= 0; i--) {
        decimal += charToNum(num[i]) * power;
        power *= base;
    }
    return to_string(decimal);
}

string convertToBase(string num, int base) {
    int decimal = stoi(num);
    string result = "";
    while (decimal > 0) {
        int remainder = decimal % base;
        result += numToChar(remainder);
        decimal /= base;
    }
    reverse(result.begin(), result.end());
    return result;
}

int main() {
    int n;
    cin >> n;
    string num;
    cin >> num;
    int m;
    cin >> m;

    string decimalNum = convertToDecimal(num, n);
    string result = convertToBase(decimalNum, m);
    
    cout << result << endl;
    
    return 0;
}
``
题目描述请你编一程序实现两种不同进制之间的数据转换。输入共三行第一行是一个正整数表示需要转换的数的进制 n 2≤n≤16第二行是一个 n 进制数若 n10 则用大写字母 A∼F 表示数码 10∼15并且该 n 进制数对应的十进制的值不超过 109第三行也是一个正整数表示转换之后的数的进制 m 2≤m≤16。输出一个正整数表示转换之后的 m 进制数。样例输入 复制16FF2样例输出 复制111111

原文地址: https://www.cveoy.top/t/topic/iV2V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录