题目来源: 1017. 负二进制转换
题目描述:
- 描述: 给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2)表示。
注意,除非字符串就是 "0",否则返回的字符串中不能含有前导零。 - 难度:
- 示例:
输入:n = 2
输出:"110"
解释:(-2)^2 + (-2)^1 = 2
具体实现
class Solution {
public String baseNeg2(int n) {
if (n == 0 || n == 1) {
return String.valueOf(n);
}
StringBuilder res = new StringBuilder();
while (n != 0) {
int remainder = n & 1;
res.append(remainder);
n -= remainder;
n /= -2;
}
return res.reverse().toString();
}
}