十进制数转换成任意进制 (基础题) HLG 1937

Description:

xuxu的数据结构要考试了,所以他在很努力的看书,有一天他看呀看呀看,突然看到一个进制转换的题目,说是要将

一个十进制数转换成二进制数,他算呀算呀算,然后就把这个问题解决了。。。。。

可是他很爱思考,他想怎么样能够将这个十进制数转换成K进制的数呢?求帮助,help!!!!

Input:

本题有多组测试数据,对于每组数据输入两个数n和k, n(32位整数)表示一个十进制数,k表示所需要转换的k进

制。 (2<= k<=16)。


Output:

输出为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A

表示,11用B表示等等)。


代码解析如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void ttor(int n, int r) {
    if (n) {
        ttor(n / r, r);
        printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0');
    }
}

int main(void){
    int n, r;

    while (~scanf("%d%d", &n, &r)) {
        if(n > 0) {
            ttor(n, r);
        }else if(!n) {
            putchar('0');
        }else {
            putchar('-');
            ttor(-n, r);
        }
        puts("");
    }
}
其他解法待续。。。



你可能感兴趣的:(二进制,数论,32位,任意进制转换)