进制转换的板子
给一个进制转换的板子(只要是2-36进制的转换都可以):
x:2-36的任何进制(int),36是因为10个数字+26个英文字母,所以最多有36进制。
y:2-36的任何进制(int)
a:2-36的任何进制表示的数(string)
string divide(int x,string a,int y)
注意:一个数/2的余数其实就是 这个数个位/2的余数
#include<bits/stdc++.h>
using namespace std;
int CharToInt(char x){
if(x>='0'&&x<='9')return x-'0';
else return x-'A'+10;
}
char IntToChar(int x){
if(x<=9)return x+'0';
else return x-10+'a';
}
string Func(int m,int n,string a){
string res="";
long long ans=0;
for(int i=0;i<a.size();i++){
ans=ans*m;
ans=ans+CharToInt(a[i]);
}
while(ans!=0){
res=IntToChar(ans%n)+res;
ans=ans/n;
}
return res;
}
int main(){
int m,n;
string a;
while(cin>>m>>n>>a){
string ans=Func(m,n,a);
cout<<ans<<endl;
}
return 0;
}