【发布时间】:2012-07-11 09:04:12
【问题描述】:
给我的金额是 50 美元。 我得到了一些面额,比如 1 美元、2 美元、5 美元等,这些面额的数量例如 1、5、6 意味着 1 枚硬币/1 美元的钞票,5 枚硬币/2 美元的钞票和 6 枚 5 美元的硬币/钞票。 我必须找出这些硬币可以用来形成这个 50 美元的数量。 我正在尝试一种有效的算法来尽可能快地解决这个问题。 请注意,金额永远不会超过 60 美元。
有人可以建议我可以使用哪种算法来解决这个问题吗? 到目前为止,我已经为这个问题编写了一个递归解决方案,但它对于我的目的来说太慢了。我很快就会在这里发布。
【问题讨论】:
-
听起来你要么在这里发布作业或挑战......应该看看另一个地方,比如代码高尔夫 (codegolf.stackexchange.com)。如果您的 recursion 很慢,请考虑一下“缓存递归”,这在您的情况下会很好用(请记住,您可以先排序以获取最高费用。
-
@RedX :是的,我知道背包问题,但那是为了更轻或相等的重量/数量。
-
@Bruce:嗯,这不是作业/挑战。在任何在线活跃的编码竞赛中搜索这个问题。如果你找到它。立即删除这个问题。反正我还有暑假,所以没有质疑这是作业
标签: c dynamic coin-change