我正在编写一个函数来计算在给定面额列表和金额的情况下改变方案的方式的数量。我的代码如下,但它没有按预期工作。我应该使用 cons 而不是 + 运算符吗?第三行的基本情况应该是空列表吗?
(define (change k l)
(cond ((= k 0) 1)
((or (< k 0) (null? l)) 0)
(else (+ (change k (cdr l))
(change (- k (car l))
(cdr l))))))
测试:
(change 11 (list 1 5 10 25))