跳到主要内容

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"
}
}
}