Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
99110 wjja K进制数转L进制数 C++ 通过 100 0 MS 268 KB 1041 2023-08-22 08:17:29

Tests(5/5):


#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) * W; } 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; }


测评信息: