检查 N 是否可以表示为从 Python 中的集合 {A, B} 中选择的整数之和
假设我们有一个数字目标。我们还有另外两个数字A和B。我们必须检查是否可以通过将A和B添加任意次数来获得目标。
因此,如果输入类似于Target=26A=5B=7,那么输出将为True,因为我们可以通过将A和B相加得到26,例如(7+7+7+5)。
示例
让我们看看以下实现以获得更好的理解-
def util(x, a, b, is_ok, target):
if x > target:
return
if is_ok[x]:
return
is_ok[x] = True
util(x + a, a, b, is_ok, target)
util(x + b, a, b, is_ok, target)
def solve(target, a, b):
is_ok = [False] * (target + 1)
util(0, a, b, is_ok, target)
return is_ok[target]
target = 26
A = 5
B = 7
print(solve(target, A, B))输入
26, 5, 7输出结果
True