所以我在python中遞歸地做了最小硬幣更改問題。我想要查看它正在進行多少次遞歸調用。所以我在我的函數中加入了一個「打印」遞歸「」。但現在它不斷的打印遞歸,沒有達到輸出,程序甚至沒有停止。這是該計劃。Python2:當我在函數中使用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)
適合我,無法複製。這應該是這種情況 - 打印不能影響該代碼。也許你沒有等待足夠長的時間來看最後的結果,或者它正在一片「回憶」線上流失? – mhawke
謝謝。事實證明,我並沒有等待足夠長的時間。 – ailhahc
如果你想想你正在試圖解決的問題,你應該能夠想出一個更好的解決方案,只需要一小部分的遞歸調用。 – Duncan