进制转换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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 15:58
投个小米提前批试试水,先投一个岗位看看形势,不行就再沉淀一下投第二个岗位,莫辜负
Java抽象带篮子:我嘞个骚刚,已经开始研发6g了吗
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
昨天 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司8个岗位
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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