Re: [問題]比大小求最小值

看板Python作者 (呈呈)時間12年前 (2013/11/05 22:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《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)
文章代碼(AID): #1IUG2Wqm (Python)
討論串 (同標題文章)
文章代碼(AID): #1IUG2Wqm (Python)