在 Python 中檢查 N 是否可以被由集合 {A, B} 中的數字組成的數字整除


假設我們有一個數字 n。我們還有另外兩個數字 a 和 b。我們必須檢查是否可以使用 a 和 b 生成一個可以整除 n 的數字。

因此,如果輸入類似於 n = 115,a = 3,b = 2,則輸出將為 True,因為 115 可以被由 2 和 3 組成的數字 23 整除。

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個函式 util()。它將接收 temp、a、b、n 作為引數。
  • 如果 temp > n,則
    • 返回 False
  • 如果 n 可以被 temp 整除,則

    • 返回 True
  • 當 util(temp * 10 + a, a, b, n) 或 util(temp * 10 + b, a, b, n) 中至少一個為真時返回 true,否則返回 false
  • 在主方法中,當 util(a, a, b, n) 或 util(b, a, b, n) 中至少一個為真時返回 true,否則返回 false

示例

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

 線上演示

def util(temp, a, b, n):
   if temp > n:
      return False
   if n % temp == 0:
      return True
   return util(temp * 10 + a, a, b, n) or util(temp * 10 + b, a, b, n)
def solve(n, a, b):
   return util(a, a, b, n) or util(b, a, b, n)
n = 115
a = 3
b = 2
print(solve(n, a, b))

輸入

115, 2, 3

輸出

True

更新於: 2021年1月19日

110 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.