lc1017-负二进制转换
题目描述
- 给定一个 n >= 0,返回其“负二进制”
示例
输入:n = 2
输出:"110"
解释:(-2)^2 + (-2)^1 = 2
输入:n = 3
输出:"111"
解释:(-2)^2 + (-2)^1 + (-2)^0 = 3
输入:n = 4
输出:"100"
题解
- 思路:类比二进制
func baseNeg2(n int) string {
if n == 0 { return "0" }
res := ""
for n != 0 {
r := n % -2
n /= -2
if r == -1 { r, n = r + 2, n + 1 }
res = strconv.Itoa(r) + res
}
return res
}

浙公网安备 33010602011771号