Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 19th, 2012  |  syntax: None  |  size: 0.49 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. amount = 200
  2. coins = (200, 100, 50, 20, 10, 5, 2, 1)
  3. ways = [1] + [0] * amount
  4.  
  5. # dynamic programing (quick)
  6. for coin in coins:
  7.     for i in range(coin, amount + 1):
  8.         ways[i] += ways[i - coin]
  9.  
  10. print ways[amount]
  11.  
  12. # recursive (slower)
  13. def ways(amount, coins):
  14.     if amount == 0:
  15.         return 1
  16.     elif len(coins) == 0:
  17.         return 0
  18.     else:
  19.         return sum((ways(amount - i * coins[0], coins[1:])
  20.                     for i in range(amount / coins[0] + 1)))
  21.  
  22. print ways(amount, coins)