进制的转换

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\n");
        else
            if(n<0)
            {
                printf("-");
                transform(r,-n);
            }
            else
                transform(r,n);
        printf("\n");
    }

}

 

posted @ 2016-06-11 18:15  ly_rabbit  阅读(177)  评论(0编辑  收藏  举报