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