1017.负二进制转换
链接:1017.负二进制转换
难度:Medium
标签:数学
简介:给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2)表示。
题解 1 - cpp
- 编辑时间:2023-04-06
- 内存消耗:5.8MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
public:
    string baseNeg2(int n) {
        return n == 0 ? "0" :
               n == 1 ? "1" :
               n % 2 != 0 ? baseNeg2((n - 1) / -2) + "1" :
               baseNeg2(n / -2) + "0";
    }
};
题解 2 - python
- 编辑时间:2023-04-06
- 执行用时:40ms
- 内存消耗:14.7MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
    def baseNeg2(self, n: int) -> str:
        if n == 0:
            return "0"
        elif n == 1:
            return "1"
        elif n % 2 != 0:
            return self.baseNeg2((n - 1) / -2) + "1"
        else:
            return self.baseNeg2(n / -2) + "0"
题解 3 - rust
- 编辑时间:2023-04-06
- 内存消耗:2.2MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn base_neg2(n: i32) -> String {
        if n == 0 {
            "0".to_string()
        } else if n == 1 {
            "1".to_string()
        } else if n % 2 != 0 {
            Solution::base_neg2((n - 1) / -2) + "1"
        } else {
            Solution::base_neg2(n / -2) + "0"
        }
    }
}