在 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

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

True

更新于: 2021年1月19日

110 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告