【考点 · 5级】 任意进制转换 — 数制变换类,常考 N 进制 ↔ 10进制 互转。
【说人话】 核心就两招:
"1A3F" 里 'A' 代表 10。
255 16FF#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int n, b;
cin >> n >> b; // 读入十进制数和目标进制
if (n == 0) { cout << "0"; return 0; }
string digits = "0123456789ABCDEF";
string res = "";
while (n > 0) {
res += digits[n % b]; // 取余得到一位
n /= b; // 除掉最低位
}
reverse(res.begin(), res.end()); // 余数倒序
cout << res << endl;
return 0;
}
A-F,别用小写。读入时大小写都要能处理。ch - '0'(数字)和 ch - 'A' + 10(大写字母)。