Run ID:1110

提交时间:2023-07-09 17:12:47

# include<iostream> using namespace std; //m代表进制2-36,n代表2-36进制 //将字符转换成十进制数 int char2int(char c){ int temp; temp=c; if(temp>='0'&&temp<='9') temp=c-'0'; else temp=c+10-'A';//输入必须时大写字母 return temp; } //将十进制数转成字符 char int2char(int c){ //计算的方法 /*char temp; if(c>=0&&c<=9) temp=a[c]; else temp=a[c];//输出时字母要小写 return temp; */ //字符串识别 string a="0123456789abcdefghijklmnopqrstuvwxyz"; return a[c]; // } string m2n(string strm,int m,int n){ string strn,res,shang,temp; //strn存储n进制的数,res存储余数字符,shang存储过程中的字符串 int r,j; //存储过程余数的值 int len=strm.size(); //m进制数的长度 int div=0; //dev为被除数中每一位的值 shang=strm; j=1; while(j>=1){ //所有位数都为0时结束 r=0; //每次初始值为0 j=0; temp=shang; shang=""; //cout<<"d"<<' '<<"r"<<' '<<"d"<<" "<<"s"<<endl; for(int i=0;i<len;i++){ //逐位求商取余 div=r*m+char2int(temp[i]); //被除数的值 //cout<<div<<" "; r=div%n; //取余 //cout<<r<<" "; div=div/n; // 求商 j+=div; //cout<<div<<" "<<endl; shang=shang+int2char(div); //中间过程的商 }//cout<<shang<<endl; res=int2char(r); strn=res+strn; } return strn; } int main(){ int m,n; string x; for(int i=1;i<=35;i++){ cin>>m>>n; cin>>x; cout<<m2n(x,m,n)<<endl; } return 0; }