用c++写出这道题:输入一个 n 进制正整数然后输出它所对应的 m 进制数。输入格式第一行输入一个正整数 n代表需要转换的数的进制为 n 2 ≤ n ≤ 16。第二行输入一个 n 进制数。第三行输入一个正整数 m代表转换后的数的进制为 m 2 ≤ m ≤ 16。输出格式输出对应的 m 进制数。样例组输入#110108输出#112输入#2542415输出#279
#include
using namespace std;
int main() { int n, m; string num; cin >> n >> num >> m;
// 将 n 进制数转化为十进制数
int dec = 0;
for (int i = 0; i < num.size(); i++)
{
int x = isdigit(num[i]) ? num[i] - '0' : num[i] - 'A' + 10;
dec = dec * n + x;
}
// 将十进制数转化为 m 进制数
string res;
while (dec)
{
int x = dec % m;
res += (x < 10 ? x + '0' : x - 10 + 'A');
dec /= m;
}
reverse(res.begin(), res.end());
cout << res << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/hpxX 著作权归作者所有。请勿转载和采集!