4354: GESP C++ 四级 3进制转换202309
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:7
解决:5
题目描述
样例输入 复制
2
8 1362
16 3F0
样例输出 复制
754
1008
提示
#include <iostream>
#include <cstring>
using namespace std;
int trans_digit(int k, char c) {
if (c <= '9')
return (c - '0');
return (c - 'A' + 10);
}
long long trans(int k, char str[]) {
int l = strlen(str);
long long res = 0, pw = 1;
for (int i = l - 1; i >= 0; i--) {
res += pw * trans_digit(k, str[i]);
pw *= k;
}
return res;
}
int main() {
int n = 0;
cin >> n;
for (int t = 0; t < n; t++) {
int k = 0;
char str[10];
cin >> k >> str;
cout << trans(k, str) << endl;
}
return 0;
}