#include <iostream>
#include <cmath>
using namespace std;
int cl(int base, string n) {
int dl = 0; int pr = 0;
for (int i = n.size() - 1; i >= 0; i--) {
int dt;
if (n[i] >= '0' && n[i] <= '9') {
dt = n[i] - '0';
}
else {
dt = n[i] - 'A' + 10;
}
dl += dt * pow(base, pr);
pr++;
}
return dl;
}
int main(void) {
int k; int dl[2005];
int base; string n;
cin >> k;
for (int i = 0; i < k; i++) {
cin >> base >> n; dl[i] = cl(base, n);
}
for (int i = 0; i < k; i++) {
cout << dl[i] << endl;
} return 0;
}
这项代码应该没有什么大问题
但是在关于16进制转换的时候出了差错
请大佬纠错!
输入案例:
2
8 1362
16 3FO
正确输出:
754
1008
此代码输出:
754
1032