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

ail*_*ahc 0 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)
Run Code Online (Sandbox Code Playgroud)

Kar*_*ath 6

游戏机很慢,而且你不够耐心:

python your_program.py | wc -l
684886
Run Code Online (Sandbox Code Playgroud)

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