提交在题目里的码是这个:
#include<bits/stdc++.h>
using namespace std;
long long x, a[150], ans[1010];
string s;
long long enzi(char d) {
if (d >= '0' && d <= '9') {
return d - '0';
}
return d - 'A' + 10;
}
int main() {
long long n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x >> s;
long long len = s.length();
for (long long i = len - 1; i >= 0; i--) {
a[len - i - 1] = enzi(s[i]);
}
long long w = 1;
for (long long i = 0; i < len; i++) {
ans[i] += a[i] * w;
w *= x;
}
}
for (long long i = 1; i <= n; i++) {
cout << ans[i] << endl;;
}
return 0;
}
如果把进行转换的主代码挑出来,就能过拆开的样例:
#include<bits/stdc++.h>
using namespace std;
int x, a[150];
string s;
int enzi(char d) {
if (d >= '0' && d <= '9') {
return d - '0';
}
return d - 'A' + 10;
}
int main() {
cin >> x >> s;
int len = s.length();
for (int i = len - 1; i >= 0; i--) {
a[len - i - 1] = enzi(s[i]);
}
int ans = 0, w = 1;
for (int i = 0; i < len; i++) {
ans += a[i] * w;
w *= x;
}
cout << ans;
return 0;
}
求调谢谢dalao