hdu 2031 进制转换
 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
 Total Submission(s): 24396    Accepted Submission(s): 13656
 Problem 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
 /*题解:
     将余数开到char型数组里,大于9的变成字母,很好的水题 
     */
 #include<cstdio>
 #include<cstring>
 int main()
 {
     int n,r,j,i;
     char a[1010],t;
     while(scanf("%d %d",&n,&r)!=EOF)
     {
         if(n<0){
             n=0-n;
             j=0;
             if(r<=10)
             {
                 while(n)
                 {
                     a[j++]=n%r+'0';
                     n/=r;
                 }
                 a[j]='-';
                 for(i=j; i>=0; i--)
                 printf("%c",a[i]);
                 printf("\n");
             }
             if(r>10)
             {
                 while(n)
                 {
                     t=n%r;
                     if(t<10) a[j++]=t+'0';
                     if(t==10) a[j++]='A';
                     if(t==11) a[j++]='B';  
                     if(t==12) a[j++]='C';
                     if(t==13) a[j++]='D';
                     if(t==14) a[j++]='E';
                     if(t==15) a[j++]='F';
                     n/=r;
                 }
                 a[j]='-';
                 for(i=j; i>=0; i--)
                 printf("%c",a[i]);
                 printf("\n");
             }
         }
         if(n>0)
         {
             j=0;
             if(r<=10)
             {
                 while(n)
                 {
                     a[j++]=n%r+'0';
                     n/=r;
                 }
                 for(i=j-1; i>=0; i--)
                 printf("%c",a[i]);
                 printf("\n");
             }
             if(r>10)
             {
                 while(n)
                 {
                     t=n%r;
                     if(t<10) a[j++]=t+'0';
                     if(t==10) a[j++]='A';
                     if(t==11) a[j++]='B';  
                     if(t==12) a[j++]='C';
                     if(t==13) a[j++]='D';
                     if(t==14) a[j++]='E';
                     if(t==15) a[j++]='F';
                     n/=r;
                 }
                 for(i=j-1; i>=0; i--)
                 printf("%c",a[i]);
                 printf("\n");
             }
         }
     }
     return 0;
 }
                 










