用递归进行10进制向其他进制转换

Posted on 2020-07-21 22:07  黑炽  阅读(567)  评论(0编辑  收藏  举报
#include<stdio.h>
#define M 2
/*
用递归算法将一个十进制数字x转化成M进制的数
*/
void solution(int x, int m);

char list[16] = {'0', '1', '2', '3', '4', '5'
            , '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

int main(void){
    int x;

    scanf("%d", &x);
    solution(x, M);
    printf("\n");

    return 0;
}

void solution(int x, int m){
    if (x == 0) return;
    solution(x / m, m);

    printf("%c", list[x % m]);
}