题解 | #进制转换2#

进制转换2

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

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
int CharToInt(char x){
    if(x<='9'){
        return x-'0';
    }
    else{
        return x-'A'+10;
    }
}
char IntToChar(int x){
    if(x<=9){
        return x+'0';
    }
    else{
        return x-10+'a';
    }
}
int main(){
    int M,N;
    string number;
    while(scanf("%d%d",&M,&N)!=EOF){
        cin>>number;
        long long decimal=0;
        for(int i=0;i<number.size();++i){
            decimal*=M;
            decimal+=CharToInt(number[i]);
        }
        vector<char> resultant;
        while(decimal!=0){
            resultant.push_back(IntToChar(decimal%N));
            decimal/=N;
        }
        for(int i=resultant.size()-1;i>=0;--i){
            printf("%c",resultant[i]);
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务