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
}
posted @ 2025-09-04 22:36  余越  阅读(7)  评论(0)    收藏  举报