关于用递归将10进制数转换成R(2-16)进制数的一种简单算法:
int print(int x,int y)
{
       if(x>=y)
     {  
       print(x/y,y); 
     }
     switch(x%y)
    {
       case 0:
       case 1:
       case 2:
       case 3:
       case 4:
       case 5:
       case 6:
       case 7:
       case 8:
       case 9:printf("%d",x%y);break;
       case 10:printf("A");break;
       case 11:printf("B");break;
       case 12:printf("C");break;
       case 13:printf("D");break;
       case 14:printf("E");break;
       case 15:printf("F");break;
       default :break;
     }
}
#include<stdio.h>
int main()
{
       int N=0;
       int R=0;
       scanf("%d%d",&N,&R);
       print(N,R);
       return 0;
}