改变:初学者麻烦

时间:2011-02-21 17:17:19

标签: recursion scheme coin-change

我正在尝试创建“改变”,它将返回一笔总和=输入的硬币,并且它需要包含尽可能少的硬币。 例如:(换装99)

=> (季度四分之一角钱币一分钱一分钱便士便士)

1 个答案:

答案 0 :(得分:3)

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

  • 如果剩余金额恰好等于1,5,10或25,则返回适当的硬币。
  • 否则,cons您可以使用的最大硬币(make-change (- x value)) value,其中{{1}}是您刚使用的硬币数量。

您可以告诉此程序将终止,因为通过步骤2,金额将变得越来越小,直到最终可以通过步骤1结束。