LeetCode1017
Questin:給出數字 N
,返回由若干 "0"
和 "1"
組成的字符串,該字符串為 N
的負二進制(base -2
)表示。
示例 1:
輸入:2 輸出:"110" 解釋:(-2) ^ 2 + (-2) ^ 1 = 2
示例 2:
輸入:3 輸出:"111" 解釋:(-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3
示例 3:
輸入:4 輸出:"100" 解釋:(-2) ^ 2 = 4
和正常二進制數的計算一樣,只不過二進制計算的時候是向下取整,負二進制是向上取整。
以6為例 二進制計算
6/2=3 余數 0
3/2=1 余數 1 (向下取整所以3/2=1)
1 余數 1 結果為 110;
負二進制計算
6/-2=-3 余數 0
-3/-2=2 余數 1(向上取整-3/-2=2)
2/-2=-1 余數 0
-1/-2=1 余數 1
1 余數 1 結果為 11010
以上分析完成后開始java代碼。
代碼地址 https://github.com/18306298951/Leetcode/blob/master/P1017