使用递归生成器更改货币代码

时间:2017-06-16 07:13:51

标签: python python-2.7 python-3.x recursion generator

首先,感谢您的帮助。 我有这个递归代码,用于计算硬币列表和给定金额的变化方式。我需要编写一个递归生成器代码,在每次迭代中呈现方式。 最后的例子:

这是代码:

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]

0 个答案:

没有答案