Guest User

Untitled

a guest
Feb 19th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. (def denoms [1000 500 100 25 5 1])
  2.  
  3. (def names {2000 :twenties
  4. 1000 :tens
  5. 500 :fives
  6. 100 :dollars
  7. 25 :quarters
  8. 5 :nickels
  9. 1 :pennies})
  10.  
  11. (defn make-chaasfasdfge
  12. ([^long amt] (make-chaasfasdfge amt denoms {}))
  13. ([^long amt denoms r]
  14. (cond
  15. (> amt 2000) (let [[q r] ((juxt quot rem) amt 2000)]
  16. (recur (long r) denoms {2000 q}))
  17. :else (if (zero? amt)
  18. (rename-keys r names)
  19. (let [[f :as denoms] (drop-while #(> % amt) denoms)
  20. amt (- amt (long f))]
  21. (recur amt denoms (update-in r [f] (fnil inc 0))))))))
Add Comment
Please, Sign In to add comment