分析:又是一道进制转换题,这次考的是负进制,基本思路和除K取余法是相通的,唯一不同的就是如果算出来这一位的系数是负的,那就要向上一位借一。
代码:
#include "bits/stdc++.h"
using namespace std;
int N, R, Bit, Out[1050];
int main() {
scanf("%d%d", &N, &R);
printf("%d=", N);
while (N) {
int q = N / R;
q += (N < R * q);
Out[Bit++] = N - R * q;
N = q;
}
for (int i = Bit - 1; i >= 0; --i)
if (Out[i] > 9) printf("%c", 'A' + Out[i] - 10);
else printf("%d", Out[i]);
printf("(base%d)\n", R);
return 0;
}