进制转换
传送门
Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
7 2
23 12
-4 3
Sample Output
111
1B
-11
新手代码
#include <stdio.h>
int main()
{
int a,k,a1,i,j,b[100];
while(scanf("%d%d",&a,&k)!=-1)
{
a1=abs(a);
if(a<0)
printf("-");
for(i=1;;i++)
{
b[i]=a1%k;
a1=a1/k;
if(a1==0)
{
j=i;
break;
}
}
for(i=j;i>=1;i--)
{
if(b[i]>=10)
{
if(b[i]%10==0)
printf("A");
if(b[i]%10==1)
printf("B");
if(b[i]%10==2)
printf("C");
if(b[i]%10==3)
printf("D");
if(b[i]%10==4)
printf("E");
if(b[i]%10==5)
printf("F");
if(b[i]%10==6)
printf("G");
}
else
printf("%d",b[i]);
}
printf("\n");
}
return 0;
}