Run ID:103531
提交时间:2024-12-28 21:35:37
#include <iostream> #include <string> #include <algorithm> using namespace std; // 函数声明,用于将M进制数转换为N进制数 string convertBase(int M, int N, string X); int main() { int M, N; // 进制M和N cin >> M >> N; // 输入进制M和N string X; // M进制的数X cin >> X; // 输入M进制的数X // 输出转换后的N进制数 cout << convertBase(M, N, X) << endl; return 0; } // 函数定义,用于将M进制数转换为N进制数 string convertBase(int M, int N, string X) { long long decimal = 0; // 用于存储转换为十进制的数 for (char c : X) { // 将每一位M进制数转换为十进制,并累加 decimal = decimal * M + (c >= 'A' ? c - 'A' + 10 : c - '0'); } string result = ""; // 用于存储转换后的N进制数 while (decimal > 0) { // 将十进制数转换为N进制,并添加到结果字符串 int remainder = decimal % N; result += (remainder < 10) ? ('0' + remainder) : ('A' + remainder - 10); decimal /= N; } if (result.empty()) { return "0"; // 如果结果为空,返回0 } reverse(result.begin(), result.end()); // 反转字符串,因为转换过程是从低位到高位 return result; }