一个简单的oj目解答一下哈

img


#include <stdio.h>
#include <string.h>
void tohex (int b,int n)
{
    char hextable[]="0123456789ABCDEF";
    char hex[1600];//储存转换后的zhi
    int a=0;
    memset(hex,0,sizeof(hex));//初始化
    char temphex[16];//中间变量
    int i=0,j,m;
    if(b<0)
        {b=b*-1;
        a=1;
    }
    if(b==0){
        printf("0");
        return;}
    while(b)
    {
        temphex[i++]=hextable[b%n];
        b/=n;
    }
    m =i-1;//储存转换后的数的长度
    for(j=0;j<i;j++)//逆序
    {
        hex[j]=temphex[m--];
    }
    if(a==1)
    printf("-%s\n",hex);
    else
    printf("%s\n",hex);

}

int main()
{
    int b;// b储存待转换的值
    int n;//n储存待转换进制的值
    while(scanf("%d%d",&b,&n)!=EOF)
    {
        tohex(b,n);
    }
    return 0;
}