和平常的转化差不多
加多一步
如果余数 < 0, 那么余数减去除数(此时除数是负),商数加1
#include#define _for(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;void cal(int n, int m){ if(n == 0) return; int p = n % m; n /= m; if(p < 0) p -= m, n++; cal(n, m); if(p <= 9) printf("%d", p); else printf("%c", p - 10 + 'A');}int main(){ int n, m; scanf("%d%d", &n, &m); printf("%d=", n); cal(n, m); printf("(base%d)\n", m); return 0;}