在 Python 中查詢重新排列的 2 次冪的程式


假設我們有一個正整數 N,我們重新排列數字的順序(包括原始順序),以使首位數字不為零。我們必須檢查是否可以透過這種方式使結果數成為 2 的冪。

因此,如果輸入類似於 N = 812,那麼輸出將為 True

要解決這個問題,我們將遵循以下步驟 -

  • i:= 1

  • while i<=1000000000,執行操作

    • s:= i 作為字串

    • s:= 排序 s 的字元

    • t:= n 作為字串

    • t:= 排序 t 的字元

    • 如果 s 與 t 相同,則

      • 返回 True

    • i:= i*2

  • 返回 False

示例

讓我們看一下以下實現,以便更好地理解 -

def solve(n):
   i=1
   while i<=1000000000:

      s=str(i)
      s=''.join(sorted(s))
      t=str(n)
      t=''.join(sorted(t))
      if s==t:
         return True

      i=i*2

   return False

N = 812
print(solve(N))

輸入

812

輸出

True

更新於: 06-Oct-2021

114 次瀏覽

開始你的 職業

修完課程即可獲得認證

開始
廣告
© . All rights reserved.