题解 | #进制转换2#

进制转换2

https://www.nowcoder.com/practice/ae4b3c4a968745618d65b866002bbd32

#include <iostream>
#include <algorithm>
using namespace std;
//m进制转换为10进制数
long long ConvertToTen(int m,string x){
    long long res=0;
    for(int i=0;i<x.size();i++){
        if(isalpha(x[i])) res=res*m+10+x[i]-'A';
        else res=res*m+x[i]-'0';
    }
    return res;
}
char intTochar(int c){
    if(c>=0&&c<=9) return '0'+c;
    return 'a'+c-10;
}
string ConvertToN(long long t,int n){
    string res;
    if(n<=10){
        while(t){
            res+='0'+t%n;
            t/=n;
        }
    }else{
        while(t){
            res+=intTochar(t%n);
            t/=n;
        }
    }
    reverse(res.begin(),res.end());
    return res;
}
int main() {
    int m,n;
    cin>>m>>n;
    string x;
    cin>>x;
    long long t=ConvertToTen(m,x);
    string res=ConvertToN(t,n);
    cout<<res<<endl;
    return 0;
}

全部评论

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务