输入:字母大小写
输出:字母小写!!!
代码:
#include<bits/stdc++.h>
using namespace std;
char s[10011],ss[10011];
int change(int n,int b,char sn[],char sb[],int len)
{
int temp=0,indexlen=0,start=0;
if(len>0)
{
while(true)
{
int flag=0;
for(int i=start;i<len;++i)
{
if(sn[i]>='0'&&sn[i]<='9')
{
temp=flag*n+sn[i]-'0';
if(temp/b>=10)//这里为易错处,虽然sn[i]小于10,但是temp有可能很大
sn[i]=temp/b+'A'-10;
else
sn[i]=temp/b+'0';
flag=temp%b;
}
else if(sn[i]>='a'&&sn[i]<='z')
{
temp=flag*n+sn[i]-'a'+10;
if(temp/b>=10)
sn[i]=temp/b+'a'-10;
else
sn[i]=temp/b+'0';
flag=temp%b;
}
else
{
temp=flag*n+sn[i]-'A'+10;
if(temp/b>=10)
sn[i]=temp/b+'A'-10;
else
sn[i]=temp/b+'0';
flag=temp%b;
}
}
if(flag<=9&&flag>=0) sb[indexlen++]=flag+'0';
else sb[indexlen++]=flag+'a'-10;
// else sb[indexlen++]=flag+'A'-10;
while(sn[start]=='0') start++;
if(start>=len-1&&sn[len-1]=='0') break;
}
}
return indexlen;
}
int main()
{
int m,n;
cin>>m>>n;
cin>>s;
int flen=change(m,n,s,ss,strlen(s));
for(int i=flen-1;i>=0;--i)
{
cout<<ss[i];
}
cout<<endl;
return 0;
}