Skip to content

Instantly share code, notes, and snippets.

@Chouser
Created January 29, 2019 22:46
Show Gist options
  • Select an option

  • Save Chouser/12b9148d7478f8a31a9684e4381d5ca0 to your computer and use it in GitHub Desktop.

Select an option

Save Chouser/12b9148d7478f8a31a9684e4381d5ca0 to your computer and use it in GitHub Desktop.

Revisions

  1. Chouser created this gist Jan 29, 2019.
    24 changes: 24 additions & 0 deletions 0031b.clj
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    ; In England the currency is made up of pound, £, and pence, p, and
    ; there are eight coins in general circulation:
    ;
    ; 1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).
    ;
    ; It is possible to make £2 in the following way:
    ;
    ; 1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
    ;
    ; How many different ways can £2 be made using any number of coins?

    ; 0031b.clj, but cleaned up for "modern" clojure and idioms

    (defn countpence
    ([] (countpence 0 [200 100 50 20 10 5 2 1]))
    ([sum opts]
    (cond
    (== sum 200) 1
    (> sum 200) 0
    (not opts) 0
    :else (+ (countpence sum (rest opts))
    (countpence (+ sum (first opts)) opts)))))

    (prn (countpence))