#include<bits/stdc++.h>
using namespace std;
int chartoint(char c){
if(c>='0'&&c<='9'){
return c-'0';
}
else{
return 10+c-'A';
}
}
char inttochar(int n){
if(n<=9){
return n+'0';
}
else{
return 'A'+n-10;
}
}
long long ptodec(int p,string s){
long long res=0;
for(int i=0;i<s.size();i++){
res=res*p+chartoint(s[i]);
}
return res;
}
string dectoq(long long num,int q){
string ans="";
while(num>0){
ans+=inttochar(num%q);
num=num/q;
}
reverse(ans.begin(),ans.end());
return ans;
}
void split(string s,int &p,string &n,int &q){
int pos1=s.find(',');
int pos2=s.find(',',pos1+1);
p=stoi(s.substr(0,pos1));
n=s.substr(pos1+1,pos2=pos1-1);
q=stoi(s.substr(pos2+1));
}
int main(){
int m;
cin>>m;
while(m--){
string line;
cin>>line;
int p,q;
string n;
split(line,p,n,q);
long long dec=ptodec(p,n);
string result=dectoq(dec,q);
cout<<result<<endl;
}
return 0;
}
这就是我写的代码,路过看到能为我检查一下吗?(万分感谢)
(也帮我点点赞)