进制转换(一)
输入一个十进制数N,将它转换成R进制数输出。
输入:输入数据包含多个测试实例,
每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R≠10)。
输出:为每个测试实例输出转换后的数,每个输出占一行。
如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
输入样例:
7 2
23 12
-4 3
输出样例:
111
1B
-11
#include <stdio.h>
#include <math.h>
#define N 10000
void change1(int a,int b);
void change2(int a,int b);
void change1(int a,int b){
int i,j,k=0,n,c[N];
if(a<0)
printf("-");
i=abs(a);
while(i){
j=i;
j=i%b; //此处为不断除以n
c[k]=j;
i=i/b;
k++;
}
for(n=k-1;n>=0;n--){
if(c[n]<10)
printf("%d",c[n]); //对于10以上的进制,用字符输出
else
printf("%c",c[n]+55);
}
}
/*change函数功能,将十进制数通过不断除n,来转化n进制*/
void change2(int a,int b);
int main(){
int a,b;
scanf("%d %d",&a,&b);
change1(a,b);
return 0;
}