题目描述
输入一个十进制数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>
void
jisuan(
int
num,
int
n);
void
jisuan(
int
num,
int
n)
- {
int
i=1,j;
char
a[999];
if
(num<0)
{
printf
(
"-"
);
num=-num;
}
i=1;
while
(num>0)
{
a[i]=num%n+
'0'
;
if
(a[i]>=
'0'
+10) a[i]=
'A'
+a[i]-
'0'
-10;
num=num/n;
i++;
}
for
(j=i-1;j>=1;j--)
printf
(
"%c"
,a[j]);
printf
(
"\n"
);
- }
int
main(
void
)
- {
int
num,n;
-
while
(
scanf
(
"%d %d"
,&num,&n)!=EOF)
{
if
(num==0)
printf
(
"0\n"
);
else
jisuan(num,n);
}
return
0;
- }