解法一
转换成负进制和正进制大致相同,但注意余数始终为正,若不满足则可以修改商来补充余数。
class Solution {
public String baseNeg2(int N) {
if (N == 0) {
return "0";
}
StringBuilder s = new StringBuilder();
for (int base = -2, x; N != 0; ) {
x = N % base;
N /= base;
// 余数始终非负
if (x < 0) {
++N;
x -= base;
}
s.append(x);
}
return s.reverse().toString();
}
}