Problem 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>
#include <string.h>
void ttor(int n, int r) {
if (n) {
ttor(n / r, r);
printf("%c", n%r > 9 ? n%r-10+'A' : n%r+'0');
}
}
int main() {
int n, r;
while (scanf("%d%d", &n, &r) != EOF) {
if (n > 0) ttor(n, r);
else if (!n) putchar('0');
else {
putchar('-');
ttor(-n, r);
}
putchar('\n');
}
return 0;
}