任务:把一个x进制的数转换成y进制
说明:先把x进制的数转换成十进制,如果x进制的数s=s(n-1)s(n-2)...s0,则对应的十进制数为,再将其不断取模再倒序,转换成y进制数。
复杂度:O(length)
输入:x,y进制数,2<=x,y<=36 s x进制数,其中每一位的10~35用A~Z表示
输出:x进制数s对应的y进制数,其中每一位的10~35用A~Z表示
int x,y;
string s;
string transform()
{
string res="";
int sum=0;
for(int i=0;i<s.length();i++){
if(s[i]=='-'){
continue;
}
if(s[i]>='0'&&s[i]<='9'){
sum=sum*x+s[i]-'0';
}else{
sum=sum*x+s[i]-'A'+10;
}
}
while(sum){
char tmp=sum%y;
sum/=y;
if(tmp<=9){
tmp+='0';
}else{
tmp=tmp-10+'A';
}
res=tmp+res;
}
if(res.length()==0){
res="0";
}
if(s[0]=='-'){
res='-'+res;
}
return res;
}

557

被折叠的 条评论
为什么被折叠?



