进制的转换

Description
输入一个十进制数N,将它转换成R进制数输出。


Input

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。 



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


Sample Input 7 2
23 12
-4 3


Sample Output
111
1B
-11


#include<stdio.h>
void transform(int r,long n)
{
    if(n==0)
        return ;
    int c;
    long b;
    b=n/r;
    c=n%r;
    transform(r,b);
    if(c>=10)
        printf("%c",c+55);
    else
        printf("%d",c);
}
void main()
{
    int r;
    long n;
    while(scanf("%ld%d",&n,&r)==2)
    {
        if(n==0)
            printf("0
");
        else
            if(n<0)
            {
                printf("-");
                transform(r,-n);
            }
            else
                transform(r,n);
        printf("
");
    }

}
选择了远方,便只顾风雨兼程
原文地址:https://www.cnblogs.com/ly-rabbit-wust/p/5575694.html