Code Review
Compare your solutions
#| This exercise has no tests.
Any solution is a right answer. |#
(define (count-change amount) (cc amount 5))
(define (cc amount kinds-of-coins)
(cond ((= amount 0) 1)
((or (< amount 0) (= kinds-of-coins 0)) 0)
(else (+ (cc amount
(- kinds-of-coins 1))
(cc (- amount
(first-denomination
kinds-of-coins))
kinds-of-coins)))))
(define (first-denomination kinds-of-coins)
(cond ((= kinds-of-coins 1) 1)
((= kinds-of-coins 2) 5)
((= kinds-of-coins 3) 10)
((= kinds-of-coins 4) 25)
((= kinds-of-coins 5) 50)))
(first-denomination 4)
(count-change 11)
(cc 11 5)
(cc 11 4)
(cc 11 3)
(cc 11 2) (cc 1 3)
(cc 11 1) (cc 1 2) (cc 6 2)
(cc 10 1) (cc 1 1) (cc 6 1) (cc 1 2)
(cc 9 1) (cc 0 1) (cc 5 1) (cc 1 1)
(cc 8 1) (cc 4 1) (cc 0 1)
(cc 7 1) (cc 3 1)
(cc 6 1) (cc 2 1)
(cc 5 1) (cc 1 1)
(cc 4 1) (cc 0 1)
(cc 3 1)
(cc 2 1)
(cc 1 1)
(cc 0 1)
; orders of growth of the space
O(n)
; orders of growth of the number of steps
O(n^5)