今天在图书馆待了一天,做了两件事:看考研数学和看sicp
感想是lisp确实是很有趣的,给我的感觉很数学
而且比之前学的语言更加接近问题的本质
在接下来的考研时间里,有lisp可以陪伴我
我想要变强= =
;;树形递归换零钱
#|关键在与基础定义(即:递归的结束条件):
1、当amount=0,说明最后一次兑换成功,算一种
2、当amount<0,说明兑换失败,算0种
3、当kinds-of-coins=0,说明没有可以兑换的硬币种类了,算0种
|#
#|
(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)))
|#