簡體   English   中英

Python2:當我將print語句放入函數中時,遞歸不起作用,但否則起作用

[英]Python2: Recursion doesn't work when I put print statement in function but works otherwise

所以我在python中遞歸地進行最小硬幣找零問題。 我想想像一下它正在進行多少次遞歸調用。 因此,我在函數中添加了“ print'recursion'”。 但是現在它不斷地進行打印遞歸,沒有達到輸出,程序甚至沒有停止。 這是程序。

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)

控制台速度很慢,您還沒有足夠的耐心:

python your_program.py | wc -l
684886

有更好的方法,使用全局計數器變量或返回一對(mincoins, counter)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM