题解 | #数制转换#

数制转换

http://www.nowcoder.com/practice/8ef02ef8571b417d8c311a87861f7a03

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int CharToInt(char x){
    if(x>='a'&&x<='f'){
        return x-'a'+10;
    }
    else if(x<='9'){
        return x-'0';
    }
    else{
        return x-'A'+10;
    }
}
char IntToChar(int x){
    if(x<=9){
        return x+'0';
    }
    else{
        return x-10+'A';
    }
}
int main(){
    int a,b;
    string n;
    while(cin>>a>>n>>b){
        if(n=="0"){
            printf("0");
        }
        else{
            long number=0;
            for(int i=0;i<n.size();++i){
                number*=a;
                number+=CharToInt(n[i]);
            }
            string resultant;
            while(number!=0){
                resultant+=IntToChar(number%b);
                number/=b;
            }
            for(int i=resultant.size()-1;i>=0;--i){
                printf("%c",resultant[i]);
            }
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务