首页 > 代码库 > 进制转换

进制转换

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>#include <stdlib.h>#define N 33void num (int n, int r, char a[]);int main(){    char a[N];    int n,r;    while (scanf ("%d%d", &n, &r)!=EOF)    {        num(n, r, a);    }    return 0;}void num (int n, int r, char a[]){    int i = 0;    if (n<0)    {        n = -n;        printf("-");    }    while (n>0)    {        a[i]=n%r;        if (a[i]>=10)            a[i]=‘A‘+a[i]-10;        n = n/r;        i++;    }    a[i] = \0;    for ( i = i-1; i>=0; i--)    {        if(a[i]>=‘A‘ && a[i]<=‘Z‘)            printf("%c", a[i]);        else            printf ("%d", a[i]);    }    printf ("\n");}
 
 
 
 
 
 
 
 
 

进制转换