精華區beta Marginalman 關於我們 聯絡資訊
想了一下 總之最多好像就61次? (雖然我跑60次也過了) for i in range(1,62) 先算num1-i*num2的部分 然後看這個num1-i*num2有幾個1bit 若現在的i>這個bit數 應該都是可以減成0的 (這個只是感覺 但應該就是ㄌ 直覺想到一個case是當i太多 但其實num1-i*num2沒這麼多1可以減 就加一個case擋掉 def makeTheIntegerZero(self, num1: int, num2: int) -> int: cur = num1 for i in range(60): cur -= num2 if cur>0: if cur.bit_count()<=(i+1) and cur>=(i+1): return i+1 return -1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.58.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1757094720.A.BCF.html