任意进制转换

题意:任意进制的转换
代码:https://www.acwing.com/problem/content/126/

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    int T;
    cin >> T;
    while (T -- )
    {
        int a, b;
        string line;
        cin >> a >> b >> line;
        vector<int> number;
        for (auto c : line)
        {
            if (c <= '9') number.push_back(c - '0');
            else if (c <= 'Z') number.push_back(c - 'A' + 10);
            else number.push_back(c - 'a' + 36);
        }
        reverse(number.begin(), number.end());
        vector<int> res;
        while (number.size())
        {
            int t = 0;
            for (int i = number.size() - 1; i >= 0; i -- )
            {
                number[i] += t * a;
                t = number[i] % b;
                number[i] /= b;
            }
            res.push_back(t);
            while (number.size() && !number.back()) number.pop_back();
        }
        reverse(res.begin(), res.end());
        string b_line;
        for (auto x : res)
        {
            if (x <= 9) b_line += char('0' + x);
            else if (x <= 35) b_line += char('A' + x - 10);
            else b_line += char('a' + x - 36);
        }
        cout << a << ' ' << line << endl;
        cout << b << ' ' << b_line << endl;
        cout << endl;
    }
    return 0;
}