首先,感谢您的帮助。 我有这个递归代码,用于计算硬币列表和给定金额的变化方式。我需要编写一个递归生成器代码,在每次迭代中呈现方式。 最后的例子:
这是代码:
def countChange(amount, coins):
if (amount == 0):
return 1
elif (amount < 0 or coins == []):
return 0
else:
return (countChange(amount, coins[:-1]) + countChange(amount - coins[-1], coins))
现在,我需要用递归生成器来介绍方法。我有一部分需要编写的代码:
def change_gen(amount, coins):
if amount == 0:
yield ?????
elif not (amount < 0 or coins == []):
g = change_gen(amount, coins[:-1])
?????
这应该是输出,例如:
for e in change_gen(5,[1,2,3]):
print(e)
[1, 1, 1, 1, 1]
[1, 1, 1, 2]
[1, 2, 2]
[1, 1, 3]
[2, 3]