負二進制轉換


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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM