题解 | #进制转换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;
}













全部评论

相关推荐

昨天 11:42
江西农业大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 14:32
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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