Skip to content

Instantly share code, notes, and snippets.

@daemianmack
Created March 17, 2012 02:47
Show Gist options
  • Save daemianmack/2054543 to your computer and use it in GitHub Desktop.
Save daemianmack/2054543 to your computer and use it in GitHub Desktop.
Breaking dollars
(def coin-values {"h" 50 "q" 25 "d" 10 "n" 5 "p" 1})
(defn get-range [x cents]
(range (+ 1 (/ cents (coin-values x)))))
(defn list-combos [cents]
(for [h (get-range "h" cents)
q (get-range "q" cents)
d (get-range "d" cents)
n (get-range "n" cents)
p (get-range "p" cents)
:when (= cents (+ (* h (coin-values "h"))
(* q (coin-values "q"))
(* d (coin-values "d"))
(* n (coin-values "n"))
(* p (coin-values "p"))))]
[h q d n p]))
;; Run!
(count (list-combos 100))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment