输入一个十进制正整数,将该数转换成n进制数
#include<stdio.h>//进制转换
#include<math.h>
int main()
{
int n,r;
int i;
int t,b;
char a[100];//a数组用储存转后每位的数字,
char c[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";//c用来代表超过9后每位的数字。
while(scanf("%d%d",&n,&r)!=EOF)
{
t=n;
t=(int)fabs(t);
i=0;
while(t>0)
{
b=t%r;
if(b>=10)
a[i]=c[b-10];
else
a[i]=b+'0';
t=t/r;
i++;
}
i--;
if(n<0)
printf("-");
while(i>=0)
{
printf("%c",a[i]);
i--;
}
printf("\n");
}
return 0;
}
测试数据:
输入 7 2
输出 111
输入 23 12
输出 1B
输入 -4 3
输出 -11