题解 | 数制转换

#include <stdio.h>
#include<string.h>
#include<ctype.h>
int change(char a){
    if(isdigit(a))
        return a-48;
    else if(isupper(a)) return a-65+10;
        else return a-97+10;
}
char ItC(int a){
    if(a<=9&&a>=0)
        return a+48;
    else return a+65-10;
}
int main() {
    int a,b;
    char n[1000];
    while(scanf("%d %s %d",&a,n,&b)!=EOF){
        if(strcmp(n,"0")==0)
            printf("0");
        else {
            long temp=0;
            for(int i=0;i<strlen(n);i++){
            temp*=a;
            temp+=change(n[i]);
            }
            char result[100];
            int t=0;
            while(temp){
                result[t++]=ItC((temp%b));
                temp/=b;
            }
            for(int j=t-1;j>=0;j--)
                printf("%c",result[j]);
        }
    }
    return 0;
}

全部评论

相关推荐

_mos_:我以为手抄报简历就已经很顶了,没想到还有表格简历
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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