Re: [問題]比大小求最小值
※ 引述《Anisno (Anisno)》之銘言:
: 我遇到一個問題,題目如下:給一個正整數,你必須找出遮罩M,滿足L<M<U且N or M
: 運算後數字最大。
: 假如
: N=30951344
: L=201310
: U=3567891
: 求M=___
: 我的想法是把N、L、U皆轉成二進為表示法,再對齊
: 試著使N or M起來皆是1。
: 對齊我可以,但是他的While root我不會寫
: 請問大家會如何解題呢??
: 第一次發文,排版不好,請見諒。
請參考 http://ideone.com/VhssDq
直接用 bit 運算
先算出 N 中不為 1 的 bit 遮罩 n_mask
EDIT:
如果 n_mask 介於 L ~ U 之間,則 M = n_mask
否則 從 L ~ U 中取 m 找出 m & n_mask 為最大的值
此 m 即是 M
若有 bug 請告知,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.104.230
※ 編輯: kaichan 來自: 211.20.104.230 (11/05 22:46)
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章