题解 | #进制转换2#

进制转换2

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

//m进制转n进制,用10进制作为中间人
//    for(int i=str.size()-1;i>=0;i--)//写成i++了就段错误了

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

int CharToInt(char c)
{
    if(c>='0'&&c<='9')
    return c-'0';
    else
     return c-'A'+10;
}
char IntToChar(int x)
{
    if(x>=0&&x<=9)
    return x+'0';
    else
     return x-10+'a';
}
int main()
{
    int m, n;
    while (cin >> m >> n) 
    { 
        string str;
        cin>>str;//能多个用例输入。用getline(cin,str)就会接收2后面的换行符
        
        long long ten=0;//
        for(int i=0;i<str.size();i++)//m进制转10进制
        {
            ten=ten*m;
            ten+=CharToInt(str[i]);
        }

        vector<char> answer;
        while(ten)//10进制转n进制
        {
            char x=IntToChar(ten%n);
            answer.push_back(x); 
            ten/=n;
        }
        for(int i=answer.size()-1;i>=0;i--)
        {
            cout<<answer[i];
        }
        cout<<endl;

    }    
  
    return 0;
}













全部评论

相关推荐

06-24 19:27
云南大学 Java
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务