【小米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;
}

  

不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
原文地址:https://www.cnblogs.com/wszhu/p/12880404.html