进制转换

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 31114    Accepted Submission(s): 17310

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

 

#include<stdio.h>
void f(int a,int b)
{
 int k;
 if(a<0)
 {
  k=-a;
  printf("-");
 }
 else k=a;
  if(k/b)
 f(k/b,b);
 printf("%d",k%b);
}
void h(int a,int b)
{
 int c;
 if(a<0)
 {
  c=-a;
  printf("-");
 }
 else c=a;
 if(c/b)
 h(c/b,b);
 if(c%b==10)
 printf("A");
 else if(c%b==11)
 printf("B");
 else if(c%b==12)
  printf("C");
 else if(c%b==13)
 printf("D");
 else if(c%b==14)
 printf("E");
 else if(c%b==15)
 printf("F");
 else printf("%d",c%b); 
}
main()
{
 int a,b,n,i,j;
 while(scanf("%d%d",&a,&b)!=EOF)
   {
    if(b<=10)
 f(a,b);
 if(b>10)
 h(a,b);
 printf("\n");
   }
 return 0;
}

posted @ 2016-01-28 12:08  mfrbuaa  阅读(199)  评论(0编辑  收藏  举报