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













全部评论

相关推荐

合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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