Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2 23 12 -4 3
Sample Output
111 1B -11
#include <stdio.h>
#define N 100
char a[N];
int main() {
int n, r;
while (scanf("%d %d", &n, &r) == 2) {
getchar();
if (n == 0) {
printf("0\n");
continue;
}
if (n < 0) {
printf("-");
n *= -1;
}
int k = 0;
while (n) {
a[k++] = n % r;
n /= r;
}
for (int j = k - 1; j >= 0; j--) {
if (a[j] < 10)
a[j] += '0';
else
a[j] += 'A' - 10;
printf("%c", a[j]);
}
printf("\n");
}
return 0;
}
Z: 90 z: 122
0:: 48 9: 57
空格: 32
换行: 10
A - a: 32