4354: GESP C++ 四级 3进制转换202309

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:3

题目描述

样例输入 复制

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;
}