Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99045 | 李树强 | K进制数转L进制数 | C++ | 通过 | 100 | 0 MS | 252 KB | 636 | 2023-08-21 16:27:01 |
#include<iostream> #include<string> using namespace std; int k, l, a[10]; string n, ans=""; char f1(int num){ if(num < 10){ return num + '0'; } return 'A' + (num % 10); } int f2(char num){ if(num >= '0' && num <= '9'){ return num - '0'; } else{ return 10 + num - 'A'; } } int main(){ while(cin >> k >> n >> l){ for(int i = 0; i < n.size(); i++){ a[n.size()-i-1] = f2(n[i]); } int cnt = 0, w = 1; for(int i = 0; i < n.size(); i++){ cnt += a[i] * w; w *= k; } ans = ""; while(cnt){ ans = f1(cnt % l) + ans; cnt /= l; } cout << ans << endl; } }