Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(N<=10000)和R(2<=R<=16)。注意,N有可能有负整数。输入为0 0时表示输入结束。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
23 12
-4 3
0 0
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(void)
- {
- int n;
- int r;
- while (scanf("%d %d", &n, &r) != EOF)
- {
- if(n==0&&r==0) break;
- else if (n > 0)
- ttor(n, r);
- else if (!n)
- putchar('0');
- else
- {
- putchar('-');
- ttor(-n, r);
- }
- putchar('\n');
- }
- return 0;
- }