0
def can_make_product(p, vals):
if len(vals)==1:
if p==vals[0]:
return True
else:
return False
for i in range(len(vals)):
for k in range(i,len(vals)):
if vals[i] * vals[k]==p:
return True
return False
p
的是,我在列表中vals
要找的產品。但是,上述代碼一次只適用於2個數字的倍數,並不適用於所有可能的子集。使用遞歸有更簡單的方法嗎?例如,給定p=81
和列表[2, 2, 3, 3, 4, 9]
,3×3×9=81
,則應該返回true
。檢查目標產品列表中(遞歸)
你必須做你自己的遞歸,或者你可以使用一個模塊,如'itertools'來爲您處理遞歸? –