問題 2.19
(define us-coins (list 50 25 10 5 1)) (define uk-coins (list 100 50 20 10 5 2 1 0.5)) (define (cc amount coin-values) (define (no-more? cv) (null? cv)) (define (first-denomination cv) (car cv)) (define (except-first-denomination cv) (cdr cv)) (cond ((= amount 0) 1) ((or (< amount 0) (no-more? coin-values)) 0) (else (+ (cc amount (except-first-denomination coin-values)) (cc (- amount (first-denomination coin-values)) coin-values))))) ;(cc 100 us-coins) ;-> 292 ;(cc 100 uk-coins) ;-> 104561 ;ならび順を変えても、影響はないだろうと思う。 ;場合の数なので、順不同でも大丈夫だと思う。 ; 25 25 50でも、25 50 25でも、 50 25 25でも、おなじ1通り。 ;(define us-coins (list 25 1 10 5 50)) ;(cc 100 us-coins) ;-> 292 ;ok ;何だこの簡単な問題…。