【小米OJ-进制转换】m进制数转换为n进制数

#include <bits/stdc++.h>
using namespace std;
int XtoDec(string s,int x){///x进制字符串转化为10进制
int ans = 0;
for(int i=0;i<s.length();i++){
if(isdigit(s[i])){///判断参数是否为十进制数字符(0~9)
ans = ans*x + (s[i]-'0');
}else{
ans = ans*x + (s[i]-'a'+10);
}
}
return ans;
}
string DectoX(int n,int x){///10进制的n转换成x进制的字符串
string ans="";
do{
int t = n%x;///求余数
n/=x;///求商
if(t>=0&&t<=9){
ans+=(t+'0');
}else{
ans+=(t-10+'a');
}
}while(n!=0);
reverse(ans.begin(),ans.end());///反转字符串
return ans;
}
int main()
{
// please write your code here
string N;
int P,Q;
while(cin>>N>>P>>Q){
cout << DectoX(XtoDec(N,P),Q) << endl;
}
return 0;
}
不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。

浙公网安备 33010602011771号