#include <iostream>
using namespace std;
const int t=20000000;
char a[t],b[t];
int fun(char c)
{
int k;
if (c>='1'&&c<='9')
{
k=c-'0';
return k;
}
k=c-55;
return k;
}
int fun1(char x)
{
int k;
if (x>=0&&x<=9)
{
k=x+'0';
return k;
}
k=x+55;
return k;
}
int main()
{
int n,m,i,j,sum=0;
cin >> n;
cin.get();
cin.getline(a,t);
cin >> m;
for (i=0;a[i]!='\0';i++)
{
if (a[i]=='0')
{
sum*=n;
}
else
{
sum=sum*n+fun(a[i]);
}
}
j=0;
while (sum!=0)
{
b[j]=fun1(sum%m);
sum=sum/m;
j++;
}
for (i=j-1;i>=0;i--)
{
cout << b[i];
}
cout << endl;
return 0;
}原文:http://blog.csdn.net/zsc2014030403015/article/details/42523893