t-count-change.scm 443 B

1234567891011121314151617181920
  1. ;; from SICP
  2. (define (cc amount kinds-of-coins)
  3. (cond ((= amount 0) 1)
  4. ((or (< amount 0) (= kinds-of-coins 0)) 0)
  5. (else (+ (cc amount
  6. (- kinds-of-coins 1))
  7. (cc (- amount
  8. (first-denomination kinds-of-coins))
  9. kinds-of-coins)))))
  10. (define (first-denomination kinds-of-coins)
  11. (cond ((= kinds-of-coins 1) 1)
  12. ((= kinds-of-coins 2) 5)
  13. ((= kinds-of-coins 3) 10)
  14. ((= kinds-of-coins 4) 25)
  15. (else 50)))
  16. (print (cc 100 5))