ailhahc
ailhahc

Reputation: 57

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

So I am doing minimum coin change problem recursively in python. I wanted to visualize how many recursive calls it's making. So I put a "print 'recursion'" in my function. But now it's continuously print recursion and not reaching output and program is not even stopping. Here is the program.

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)

Upvotes: 0

Views: 67

Answers (1)

Karoly Horvath
Karoly Horvath

Reputation: 96258

Consoles are quite slow, and you weren't patient enough:

python your_program.py | wc -l
684886

There are better ways, use a global counter variable or return a pair of (mincoins, counter).

Upvotes: 6

Related Questions