题解 | #进制转换2#

进制转换2

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

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

int chartoint(char c){
    if('0'<=c&&c<='9') return c-'0';
    if('A'<=c&&c<='Z') return c-'A'+10;
    if('a'<=c&&c<='z') return c-'a'+10;
    return 0;
}
char inttochar(int n){
    if(0<=n&&n<=9) return n+'0';
    else return n-10+'A';
}
string change(string number,int presbase,int posbase){
    string res="";
    while(!number.empty()){
        int remainder=0;
        for(int i=0;i<number.size();i++){
            int cur = remainder*presbase + chartoint(number[i]);
            number[i] = inttochar(cur/posbase);
            remainder = cur%posbase;
        }
        res+=inttochar(remainder);
        while(number[0]=='0') number.erase(0,1);
    }
    reverse(res.begin(),res.end());
    return res;
}
int main() {
    int m,n;
    string number;
    cin>>m>>n>>number;
    cout<<change(number,m,n);
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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