小编Rya*_*anD的帖子

SICP做出改变

所以; 我是一个尝试通过SICP工作的业余爱好者(它是免费的!)并且在第一章中有一个示例程序,旨在计算用美国硬币进行更改的可能方法; (change-maker 100)=> 292.它的实现类似于:

(define (change-maker amount)
  (define (coin-value n)
    (cond ((= n 1) 1)
          ((= n 2) 5)
          ((= n 3) 10)
          ((= n 4) 25)
          ((= n 5) 50)))

  (define (iter amount coin-type)
    (cond ((= amount 0) 1)
          ((or (= coin-type 0) (< amount 0)) 0)
          (else (+ (iter amount
                         (- coin-type 1))
                   (iter (- amount (coin-value coin-type))
                         coin-type)))))

  (iter amount 5))
Run Code Online (Sandbox Code Playgroud)

无论如何; 这是一个树递归过程,作者"留下挑战"找到一个迭代过程来解决同样的问题(即固定空间).我没有幸运得到这个或在沮丧后找到答案.我想知道这对我来说是不是一个大脑放屁,或者是作者和我搞砸了.

scheme sicp coin-change

13
推荐指数
1
解决办法
4045
查看次数

标签 统计

coin-change ×1

scheme ×1

sicp ×1