Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168163 | 徐启善(C班) | K进制数转L进制数 | C++ | 通过 | 100 | 0 MS | 260 KB | 1114 | 2024-08-19 23:14:39 |
#include <bits/stdc++.h> using namespace std; const int MAXN = 500; int main() { int base, tbase; char n[MAXN]; while (cin >> base >> n >> tbase) { int len = strlen(n); long long v10 = 0; for (int i = len - 1, power = 1; i >= 0; i--, power *= base) { if (isdigit(n[i])) { v10 += (n[i] - '0') * power; } else if (isalpha(n[i])) { v10 += (tolower(n[i]) - 'a' + 10) * power; } } if (v10 == 0) { cout << '0'; } else { vector<char> res; while (v10 > 0) { int r = v10 % tbase; if (r < 10) { res.push_back('0' + r); } else { res.push_back('A' + r - 10); } v10 /= tbase; } reverse(res.begin(), res.end()); for (char c : res) { cout << c; } } cout << endl; } return 0; }