输入一个十进制数N,将它转换成R进制数输出(运用递归实现)

时间:2022-11-02 15:38:16

#include<stdio.h>

int cnt=0;                             //用来记录每个进制存放的位置

char num[20];   //用来存放每个进制的数   





void fun(int a,int b)

{

if(a==0)
  //递归的终止条件

return;

fun(a/b,b);
                      //顺序递归

num[cnt++] = a%b;                  //逆序递归







int main()

{

int a,b;

while(scanf("%d%d",&a,&b)!=EOF)

{

if(a<0)

{

a = -a;

fun(a,b);

printf("-");

for(int i=0;i<cnt;i++)

{

if(num[i]<10)

printf("%d",num[i]);

else

printf("%c",num[i]+'A'-10);

}

}

else

{

fun(a,b);

for(int i=0;i<cnt;i++)

{

if(num[i]<10)

printf("%d",num[i]);

else

printf("%c",num[i]+'A'-10);

}

}

printf("\n");

cnt = 0;





}

}