进制转换2

进制转换2

https://www.nowcoder.com/practice/ae4b3c4a968745618d65b866002bbd32?tpId=40&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&gioEnter=menu

#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
 
using namespace std;

char IntToChar(int x){                    //数字转字符
    if(x<10)
        return x+'0';
    else
        return x-10+'a';
}

int CharToInt(char c){                //字符转数字
    if(c>='0'&& c<='9')
        return c-'0';
    else
        return c-'A'+10;
}

int main(){
    int m,n;
    scanf("%d%d",&m,&n);
    string str;
    cin>>str;
    long long number=0;
    for(int i=0;i<str.size();i++){        //X是M进制的数,先转为十进制
        number *= m;
        number += CharToInt(str[i]);
    }
    vector<char> answer;
    while(number!=0){
        answer.push_back(IntToChar(number%n));
        number /= n;
    }
     for(int i=answer.size()-1;i>=0;i--)        //逆序输出得该二进制数
            printf("%c",answer[i]);
        printf("\n");
    return 0;
}
全部评论

相关推荐

09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务