Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99091 | 李大川LDC | K进制数转L进制数 | C++ | 解答错误 | 60 | 0 MS | 264 KB | 1035 | 2023-08-21 23:15:02 |
#include <iostream> #include <string> using namespace std; int after[100]; string chars = "0123456789ABCDEF"; long long getNumber(string& S, long long K) { long long val = 0; long long W = 1; for (int i = S.size() - 1; i >= 0; i--) { if (S[i] >= 'A' && S[i] <= 'F') { val += (S[i] - 'A') + 10; } else { val += (S[i] - '0') * W; } W *= K; } return val; } int getAfterVal(long long VAL, long long L) { int len = 0; while(VAL != 0) { after[len++] = VAL % L; VAL /= L; } return len; } int main() { ios::sync_with_stdio(false); cin.tie(0); long long K, L; string V; while(cin >> K) { cin >> V >> L; long long val = getNumber(V, K); int len = getAfterVal(val, L); for (int i = len - 1; i >= 0; i--) { cout << chars[after[i]]; } cout << "\n"; } return 0; }