以下是代码,感谢大佬
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e9+10;
int n,m;
int J1[9999],j2[9999];
signed main()
{
scanf("%lld",&n);scanf("%lld",&m);
J1[0]=1,j2[0]=1;
int j=0;
while(J1[j-1]<=1e9)
J1[++j]=J1[j-1]*n;
string s,c;
cin>>s;
int len=s.length();
for(int i=0;i<len;i++)
c[i]=s[len-i-1];
int middle=0;
for(int i=0;i<len;i++)
{
int x;
if(c[i]=='A') x=10;
if(c[i]=='B') x=11;
if(c[i]=='C') x=12;
if(c[i]=='D') x=13;
if(c[i]=='E') x=14;
if(c[i]=='F') x=15;
if(c[i]>='0'&&c[i]<='9') x=c[i]-'0';
middle+=x*J1[i];
}
j=0;
while(j2[j-1]<=1e9)
j2[++j]=j2[j-1]*m;
bool flag=false;
for(int i=30;i>=0;i--)
{
//int x=middle/j2[i];
if(j2[i]==0) continue;
int x=middle/j2[i];
if(!x&&flag) cout<<0;
if(x)
{
flag=true;
if(x==10) cout<<"A";
if(x==11) cout<<"B";
if(x==12) cout<<"C";
if(x==13) cout<<"D";
if(x==14) cout<<"E";
if(x==15) cout<<"F";
if(x>=0&&x<=9) cout<<x;
middle-=x*j2[i];
}
}
return 0;
}