答复: 有1元,5元,10元,20元,50元,问组成100元有多少种情况

SICP, 1.2.2 Tree Recursion
有详细的解释
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.2

CLISP的一种实现


(defparameter us-coins (list 50 25 10 5 1))

(defun no-more? (coin-values)
(null coin-values))

(defun except-first-denomination (coin-values)
(cdr coin-values))

(defun first-denomination (coin-values)
(car coin-values))

(defun cc (amount coin-values)
(cond ((= amount 0) 1)
((or (< amount 0) (no-more? coin-values)) 0)
(t
(+ (cc amount
(except-first-denomination coin-values))
(cc (- amount
(first-denomination coin-values))
coin-values)))))

(defun count-change (amount &optional (coin-values us-coins))
(cc amount coin-values))

;;; test, assertEquals 343
(print (count-change 100 '(50 20 10 5 1)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值