题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2031
【数制换算的一般方法】
得到(746)10 = (1352)8<span style="font-size:18px;">8|746<br /> ----<br /> 8|93 --- 2<br /> ---<br /> 8|11 --- 5<br /> ---<br /> 8|1 --- 3<br /> --<br /> 0 --- 1</span>
#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) ttor(n, r); else if (!n) putchar('0'); else { putchar('-'); ttor(-n, r); } putchar('\n'); } return 0; }