B3869 [GESP202309 四级] 进制转换
#include<bits/stdc++.h>
using namespace std;
long long n, k, ans;
string a;
vector<int>b;
int main() {
cin >> n;
while (n--) {
cin >> k >> a;
ans = 0;
if (k == 10) {
cout<<a<<endl;
continue;
}
if (k < 10) {
long long tmp = 0;
for (long long i = a.size() - 1; i >= 0; i--) {
ans += (a[i] - '0') * (pow(k, tmp));
tmp++;
}
} else {
long long tmp = 0;
for (int i = a.size() - 1; i >= 0; i--) {
if (a[i] >= '0' && a[i] <= '9')ans += (a[i] - '0') * pow(k, tmp);
else ans += (a[i] - 55) * pow(k, tmp);
tmp++;
}
}
b.push_back(ans);
}
for(int i=0;i<b.size();i++){
cout<<b[i]<<endl;
}
return 0;
}