解题思路:
先转十进制,再转需要转的进制。网上有人没转十进制直接做,但是我感觉还是转一下方便点。
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int B, b, shu, cnt, ans[50], arr;
string s;
char ch;
int main()
{
cin >> B >> s;
for (int i = s.size() - 1; i >= 0; --i) {
ch = s[i];
if (ch >= 'A' && ch <= 'F') shu += pow(B, cnt++) * (ch - 55);
else shu += pow(B, cnt++) * (ch - 48);
}
cin >> b;
while (shu) {
ans[arr++] = shu % b;
shu /= b;
}
for (int i = arr - 1; i >= 0; --i) {
if (ans[i] >= 10) {
ch = 55 + ans[i];
cout << ch;
}
else cout << ans[i];
}
return 0;
}