1

我正在尝试创建“make-change”,它将返回总和 = 输入的硬币的 ls,并且它需要包含尽可能少的硬币数量。例如:(修改 99)

=> (四分之一四分之一一角一角便士便士便士便士便士)

4

1 回答 1

3

make-change以下是应该运行的路线:

  • 如果剩余金额正好等于 1、5、10 或 25,则归还相应的硬币。
  • 否则,cons您可以在(make-change (- x value))where结果中使用的最大硬币value就是您刚刚使用的硬币数量。

你可以告诉这个过程将终止,因为金额将通过第 2 步变得越来越小,直到最终可以以第 1 步结束。

于 2011-02-21T17:30:17.603 回答