进制转换

来源:互联网 发布:淘宝一千零一夜2 编辑:程序博客网 时间:2024/06/05 18:56

题目描述

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

输入

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

输出

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

示例输入

7 223 12-4 3

示例输出

1111B-11

提示

 

来源


#include <stdio.h>#include <stdlib.h>#include <string.h>int zhan[20000];int main(){    int n,r,sh,yu;    int i,j,k;    while(~scanf("%d%d",&n,&r))    {        if(r>16 || r<2)            break;        if(n == 0)            printf("0\n");        else        {            i = 0;            if(n<0)                sh = -n;            else                sh = n;            while(sh)            {                yu = sh % r;                sh = sh / r;                zhan[i++] = yu;            }            if(n < 0)                printf("-");            for(j = i-1; j>=0; j--)            {                if(zhan[j] == 10)                    printf("A");                else if(zhan[j] == 11)                    printf("B");                else if(zhan[j] == 12)                    printf("C");                else if(zhan[j] == 13)                    printf("D");                else if(zhan[j] == 14)                    printf("E");                else if(zhan[j] == 15)                    printf("F");                else                    printf("%d",zhan[j]);            }            printf("\n");        }    }    return 0;}


0 0