描述
将M进制的数X转换为N进制的数输出。
输入描述:
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。
输出描述:
输出X的N进制表示的数。
思路:通过10进制中转,36即10+26
先转为10进制,再由10进制转为n进制
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
char int2char(int x){
if(x<10){
return '0'+x;
}
else{
return x-10+'a';
}
}
int char2int(char c){
if(c>='0'&&c<='9'){
return c-'0';
}
else{
return c-'A'+10;
}
}
int main()
{
int m,n;
cin>>m>>n;
string a;
cin>>a;
LL number=0;
for(int i=0;i<a.size();i++){
number*=m;
number+=char2int(a[i]);
}
vector<char>res;
while(number){
res.push_back(int2char(number%n));
number/=n;
}
for(int i=res.size()-1;i>=0;i--){
printf("%c",res[i]);
}
return 0;
}