1234567891011121314151617181920 |
- ;; from SICP
- (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)
- (else 50)))
- (print (cc 100 5))
|