Python2:当我将print语句放在函数中但其他方法有效时,递归不起作用

时间:2016-02-01 10:38:21

标签: python recursion

所以我在python中递归地做最小的硬币更换问题。我想想象一下它正在进行多少次递归调用。所以我在我的函数中放了一个“print'递归'”。但现在它不断打印递归而没有达到输出,程序甚至没有停止。这是程序。

def min_coins(coins, change):
    print 'recursion' #program works without this line
    mincoins = change
    if change in coins:
        return 1
    else:
        for i in coins:
            if i<=change:
                numcoins = 1 + min_coins(coins, change-i)
                if(numcoins < mincoins):
                    mincoins = numcoins
    return mincoins

c = [1,5,25]
d = 50

print min_coins(c, d)

1 个答案:

答案 0 :(得分:6)

游戏机很慢,你没有足够的耐心:

python your_program.py | wc -l
684886

有更好的方法,使用全局计数器变量或返回一对(mincoins, counter)