不同进制的外星人的语言,如何转换进制以交流?

题目描述

nowcoder费了很大劲,终于和地外文明联系上。我们地球人通常有10根手指,因此我们习惯用10进制的数,而外星人的手指有16跟、8根等不等的数目,因此他们使用与我们不同的进制。为了方便沟通,需要你开发一款工具,把地球人的10进制转换成外星人的R进制形式。

输入描述:

输入有多行。

每行包括两个正整数n和R,其中2≤R≤16。

输入直到文件结束为止。


 

输出描述:

对于每个用例,输出n对应的R进制形式。

超过10进制的数,10用A表示、11用B表示,依次类推。

输入例子:

1989 2
1119 16

输出例子:

11111000101
45F

算法实现: 

#include <stdio.h>

int main()
{
    int r,coder;
    long n;
    
    while (scanf("%ld %d",&n,&r)!=EOF) {
        int now[1000];
        coder=0;
        
        while (n){
            now[coder]=n%r;
            n=n/r;
            coder++;
        }
        while (coder>0) {
            coder--;
            
            if (now[coder]<10) {
                printf("%d",now[coder]);
            } else {
                printf("%c",'A'+now[coder]-10);
            }
        }
        printf("\n");
    }
    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40711025/article/details/81461994
今日推荐