进制转换2

进制转换2

http://www.nowcoder.com/questionTerminal/ae4b3c4a968745618d65b866002bbd32

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<math.h>

int M,N;
char ans[100];
void MtoN(char *num)
{
    int len = strlen(num);
    long long decimal = 0;
    for(int i = len-1;i>=0;i--) // M转为10进制
    {
        if (isupper(num[i]))
            decimal += (num[i] - 'A'+10) * (long long) pow(M, len - 1 - i);
        else
            decimal += (num[i] - '0') * (long long) pow(M, len - 1 - i);
    }
    int j = 0;
    long long temp;
    while(decimal) //10进制转N进制
    {
        temp = decimal % N;
        if(temp < 10)
            ans[j++] = temp+'0';
        else
            ans[j++] = temp - 10 + 'a';
        decimal /= N;
    }
    for(int i = j-1;i>=0;i--)
        printf("%c",ans[i]);
    return;
}
int main()
{
    scanf("%d %d",&M,&N);
    char num[100];
    scanf("%s",num);
    MtoN(num);
    return 0;
}
全部评论

相关推荐

_mos_:我以为手抄报简历就已经很顶了,没想到还有表格简历
点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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