求乙個二進位制串mod 3的餘數

2021-09-19 11:31:48 字數 395 閱讀 6927

求乙個二進位制串mod 3的餘數

這是某bat公司技術面三面的一道**題目,沒做出來,現在整理一波

首先,第乙個思路是將這個二進位制串轉換為十進位制,然後再進行計算,但是這個肯定不是面試官想要的答案,對於很長的二進位制串不能轉換為十進位制數字。

下面講第二個思路,狀態機(其實可用於求mod任何數的情況)

整個狀態機分為三個狀態,0,1,2,分別代表三種餘數情況,從二進位制串的第一位開始讀,如果為0,則從0開始,下面讀到乙個1,則轉換到狀態1(相當於0*2+1),讀到的還是0則轉換到狀態0(相當於0*2+0),以此類推,形成狀態機如下:

根據這個狀態機寫**就很容易啦。

判斷二進位制數除以3的餘數

乙個非常有意思的問題 判斷乙個二進位制的數除以3的餘數。思路 首先肯定會想到十進位制除3整除的規則 每位數相加的和能被3整除。但是按照這樣的思路去考慮二進位制的情況容易進入到死胡同裡。考慮以下方法 二進位制的數再加一位0就是原來的值 2,再加上一位1就是原來的值 2 1。那麼考慮以下的狀態轉換 以下...

JS 二進位制計算,如何得到乙個負數的二進位制表示

題目 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示 收穫 1.由負數的補碼求他的絕對值補碼 負二進位制數的絕對值,只要各位 包括符號位 取反,再加1,就得到其絕對值。2.負數正碼取反 不包括符號位 1即得到補碼表示 3.js中求二進位制,number tostring 2 負數和...

二進位制 求乙個數的二進位制表示中1的個數

題目 求乙個正整數x中1的個數 思考 二進位制是乙個01串。統計該串中1的個數。方法1 將x按照樸素的方法轉化成二進位制串,如果x的某二進位制位上為1,則res 求得最後x中1的個數。int x while x return res res即是x的二進位制數中1的個數用這種方法求,時間複雜度為o n...