描述
输入一个十进制数N,将它转换成R进制数输出。
输入
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16)
输出
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,11用B表示等等)。
样例输入
7 2
23 12
-4 3
样例输出
111
1B
-11
#include<stdio.h>
int main() {
int N,R,t,i;
int a[32];
char c[16];
for(i=0;i<16;i++){
if(i<10){
c[i]=i+'0';
} else{
c[i]=i-10+'A';
}
}
while(scanf("%d%d",&N,&R)!=EOF){
if(N==0){
printf("0\n");
continue;
}
if(N<0){
putchar('-');
N=-N;
}
for(i=0;i<32;i++){
if(N==0)break;
t=N%R;
a[i]=t;
N=N/R;
}
while (i--){
printf("%c",c[a[i]]);
}
printf("\n");
}
}