R进制转换  C 语言

时间:2021-11-14 05:55:42

R进制转换

时限:1000ms 内存限制:10000K 总时限:3000ms

描述:

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

输入:

输入共一行,包含两个整数N(32位正整数)和R(2<=R<=16,R<>10)。

输出:

输出转换后的数,输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10-16分别用A-F表示,等等)。

输入样例:

23 12
6687 16

输出样例:

1B
1A1F

 

 

 

 

#include<stdio.h>
#include<stdlib.h>

int main()
{
 int N,R,N1;
 int temp[50];
 int i=0,j;
 scanf("%d%d",&N1,&R);
 if(N1<0)
  N=-N1;
 else
  N=N1;
 j=i;
 temp[i++]=N%R;
 N/=R;
 while(N!=0)
 {
  j=i;
  temp[i++]=N%R;
  N/=R;
  
 }
 if (N1<0)
  printf("-");
 for (i=j;i>=0;i--)
 {
  if(temp[i]<10)
   printf("%d",temp[i]);
  else
   printf("%c",temp[i]+55);
 }
 printf("\n");
 return 0;
}