mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 16:36:41 +08:00
添加 problem 1017
This commit is contained in:
@ -0,0 +1,20 @@
|
|||||||
|
package leetcode
|
||||||
|
|
||||||
|
import "strconv"
|
||||||
|
|
||||||
|
func baseNeg2(N int) string {
|
||||||
|
if N == 0 {
|
||||||
|
return "0"
|
||||||
|
}
|
||||||
|
res := ""
|
||||||
|
for N != 0 {
|
||||||
|
remainder := N % (-2)
|
||||||
|
N = N / (-2)
|
||||||
|
if remainder < 0 {
|
||||||
|
remainder += 2
|
||||||
|
N++
|
||||||
|
}
|
||||||
|
res = strconv.Itoa(remainder) + res
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package leetcode
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
type question1017 struct {
|
||||||
|
para1017
|
||||||
|
ans1017
|
||||||
|
}
|
||||||
|
|
||||||
|
// para 是参数
|
||||||
|
// one 代表第一个参数
|
||||||
|
type para1017 struct {
|
||||||
|
one int
|
||||||
|
}
|
||||||
|
|
||||||
|
// ans 是答案
|
||||||
|
// one 代表第一个答案
|
||||||
|
type ans1017 struct {
|
||||||
|
one string
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_Problem1017(t *testing.T) {
|
||||||
|
|
||||||
|
qs := []question1017{
|
||||||
|
|
||||||
|
question1017{
|
||||||
|
para1017{2},
|
||||||
|
ans1017{"110"},
|
||||||
|
},
|
||||||
|
|
||||||
|
question1017{
|
||||||
|
para1017{3},
|
||||||
|
ans1017{"111"},
|
||||||
|
},
|
||||||
|
|
||||||
|
question1017{
|
||||||
|
para1017{4},
|
||||||
|
ans1017{"110"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("------------------------Leetcode Problem 1017------------------------\n")
|
||||||
|
|
||||||
|
for _, q := range qs {
|
||||||
|
_, p := q.ans1017, q.para1017
|
||||||
|
fmt.Printf("【input】:%v 【output】:%v\n", p, baseNeg2(p.one))
|
||||||
|
}
|
||||||
|
fmt.Printf("\n\n\n")
|
||||||
|
}
|
47
Algorithms/1017. Convert to Base -2/README.md
Executable file
47
Algorithms/1017. Convert to Base -2/README.md
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
# [1017. Convert to Base -2](https://leetcode.com/problems/convert-to-base-2/)
|
||||||
|
|
||||||
|
|
||||||
|
## 题目:
|
||||||
|
|
||||||
|
Given a number `N`, return a string consisting of `"0"`s and `"1"`s that represents its value in base **`-2`** (negative two).
|
||||||
|
|
||||||
|
The returned string must have no leading zeroes, unless the string is `"0"`.
|
||||||
|
|
||||||
|
**Example 1:**
|
||||||
|
|
||||||
|
Input: 2
|
||||||
|
Output: "110"
|
||||||
|
Explantion: (-2) ^ 2 + (-2) ^ 1 = 2
|
||||||
|
|
||||||
|
**Example 2:**
|
||||||
|
|
||||||
|
Input: 3
|
||||||
|
Output: "111"
|
||||||
|
Explantion: (-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3
|
||||||
|
|
||||||
|
**Example 3:**
|
||||||
|
|
||||||
|
Input: 4
|
||||||
|
Output: "100"
|
||||||
|
Explantion: (-2) ^ 2 = 4
|
||||||
|
|
||||||
|
**Note:**
|
||||||
|
|
||||||
|
1. `0 <= N <= 10^9`
|
||||||
|
|
||||||
|
|
||||||
|
## 题目大意
|
||||||
|
|
||||||
|
给出数字 N,返回由若干 "0" 和 "1"组成的字符串,该字符串为 N 的负二进制(base -2)表示。除非字符串就是 "0",否则返回的字符串中不能含有前导零。
|
||||||
|
|
||||||
|
提示:
|
||||||
|
|
||||||
|
- 0 <= N <= 10^9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 解题思路
|
||||||
|
|
||||||
|
- 给出一个十进制的数,要求转换成 -2 进制的数
|
||||||
|
- 这一题仿造十进制转二进制的思路,短除法即可。
|
||||||
|
|
Reference in New Issue
Block a user