问题标签 [coin-change]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1890 浏览

dynamic-programming - 硬币找零算法 - 具有一维数组的 DP

我在这里遇到了 Coin Change 问题的解决方案:Coin Change。在这里,我能够理解第一种递归方法,第二种方法使用 DP 和 2D 数组。但我无法理解第三种解决方案背后的逻辑。

据我所知,最后一种方法适用于考虑硬币兑换中使用的硬币顺序的问题。我对么?如果我错了,谁能解释我。

0 投票
1 回答
343 浏览

php - PHP:硬币找零难题

我正在将 Advent of Code 作为练习 TDD 和学习 PHPSpec 的一种方式。我被困在第 17 天,这本质上是硬币找零难题。

精灵们又买了太多的蛋酒——这次是 150 升。要将其全部装入冰箱,您需要将其移入较小的容器中。您清点可用容器的容量。

例如,假设您有大小为 20、15、10、5 和 5 升的容器。如果您需要储存 25 升,有四种方法可以做到:

  • 15 和 10
  • 20和5(前5)
  • 20和5(第二个5)
  • 15、5 和 5

完全装满所有容器,有多少种不同的容器组合可以完全装满 150 升蛋酒?

这是我的代码。我使用上面的示例编写了一个测试。该combinations方法应按4示例返回,但它返回 3。它似乎无法处理有多个 5 升容器的事实。

请问有什么建议吗?

0 投票
2 回答
1021 浏览

algorithm - Determine if you can make change with N denominations using each denomination only once and with at most k coins

This is a version of the coin-changing problem. As such, it is a dynamic programming problem.

I know how to determine if you can make change if either you can use at most one coin of each denomination or if you can use at most k coins, but not both.

0 投票
2 回答
1986 浏览

javascript - JavaScript - 这个硬币找零算法有什么问题

我正在尝试使用贪婪算法来计算达到 JavaScript 金额所需的最小硬币数量

返回结果将是一个数组,由每个级别的硬币数量组成

我决定制作一个可以解决这个问题的函数,但它不起作用

calculateChange 函数接受两个参数,一个硬币值数组和金额。

第一步是初始化一个 sum 变量,该变量显示已调度的更改量。我还将创建一个数组变量,该变量将保存某个硬币已分配的次数。

为此,我将遍历硬币数组并将所有值设置为 0。如果我不知道不同硬币值的数量,这一点很重要

接下来我想有一个while条件来检查金额是否已达到

如果没有,我将启动一个循环遍历所有硬币值。至于贪心算法,随着指数的增加,币值下降。这是为了使用尽可能少的硬币

为了防止向下跳硬币层次结构,将在此 for 循环中嵌套一个 while 循环。这个 while 循环将检查最大的硬币是否仍然可以使用。

如果不满足循环条件,则 while 循环将结束。for 循环将通过增加索引来继续。我们将向下移动到下一个较低级别的硬币。该过程将重复

我期待的输出是这个

这意味着 2 个 50s、1 个季度、1 个角钱和 2 个便士

在这个函数中,this 应该代表 dispatched 的值,也就是返回值。运行上面的代码,我没有得到返回值

我能得到的唯一解释是我使用错误的循环。即使在检查时我也看不到

我在这里想念什么。非常感谢您的见解

0 投票
0 回答
260 浏览

python - 使用无界背包python的硬币找零功能

我正在尝试编写一个硬币找零函数。这个想法是我有无限的面额和任何价值,并试图看看我能得到什么样的改变。我认为这可以像无界背包程序一样完成,但我得到一个奇怪的输出,我不明白它的含义。我想可能是因为我正在输入值和小数,并想将函数中的值更改为浮动,但这给了我一个错误并且不会运行程序。有人可以解释我当前的输出在说什么吗?有可能用小数做这种事情吗?我该如何改进呢?

OUTPUT: [0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.060000000000000005, 0.07, 0.08, 0.09, 0.1, 0.11000000000000001, 0.12000000000000001, 0.13, 0.14, 0.15000000000000002, 0.16000000000000003, 0.17000000000000004, 0.18000000000000005, 0.19000000000000006, 0.20000000000000007]

0 投票
2 回答
987 浏览

java - 获取任何价值的纸币和硬币的数量

我想制作一个小系统,可以为我返回任何价值的优化数量的纸币和硬币。

这是我的代码:

嗯,这几乎是正确的,钞票运作良好,我的问题是硬币。

以下是一些输入:

  • 576.73 // 正确打印
  • 8.45 // 打印不正确
  • 9.45 // 打印不正确,看下面:

实际输出:

预期输出:

PS:我不会发布所有预期的输出,因为它会让问题比现在更大,但是如果你需要,我可以发布。提前致谢。

0 投票
2 回答
140 浏览

algorithm - 扭转硬币变化(最小化重量阵列)

我正在构建一个应用程序,用于少于 10 个不同重量的锻炼。例如:锻炼可能需要 {30,40,45,50,55,65,70,80} 的重量。

现在,用户不必确定要抓取多少 45 磅、35 磅、25 磅等重量,并且应用程序可以显示一个表格,其中包含所需的每种尺寸的重量数量,这将是一件好事。

我的问题是,鉴于我们有无限数量的 5 磅、10 磅、25 磅、35 磅和 45 磅的权重,那么能够对阵列中的每个权重求和的最佳数量是多少?最佳是首先总重量最少,然后总重量最轻。

例如,假设我想优化 {25, 35, 45},那么如果我的答案数组是 {num_5lbs, num_10lbs, num_25lbs, num_35lbs, num_45lbs} 我们可以做 {0,0,1,1,1} 但然后总计为 25+35+45=105 磅。我们也可以做 {0,2,1,0,0},我认为这是最佳的,因为它是 3 个重量,但总重量只有 45 磅。

另一个例子,假设我想优化 {30,40,50},那么我们可以有 {1,2,1,0,0} 和 {1,1,1,1,0}。两者都使用4个砝码,但前者一共5+20+25=50磅,而后者一共5+10+25+35=75磅。

0 投票
1 回答
3089 浏览

c++ - 硬币找零的贪心算法c ++

所以,我正在创建一个硬币兑换算法,它采用 N 值和任意数量的面额,如果它没有 1,我必须自动包含 1。我已经这样做了,但是现在有一个缺陷,我有 2 个矩阵,我需要使用其中的 1 个。是否可以重写 S[i] 矩阵并仍然增加数组的大小....另外,我怎样才能找到最大面额和第二高的面额,直到最小的面额?我应该将其从最高到最低进行排序以使其更容易,还是有一种更简单的方法可以一个接一个地寻找它们?

0 投票
2 回答
86 浏览

prolog - 试图解决这个难题,但没有找到正确的答案。这是生成的代码

您有 5、10、20、50、100 的硬币,
其重量分别为 2g、3g、10g、25g、50g。你的钱包很弱,所以你不能超过 391 克的重量。你只能在里面放 3 个相同价值的硬币。你能说一下你钱包的最大价值是多少吗?

询问 :::change([(Five,Ten,Twenty,Fifty,Hundred),W,S])

0 投票
3 回答
727 浏览

c++ - 递归硬币找零c ++

每次递归调用最小函数时,我的程序似乎都会崩溃。谁能告诉我为什么它会崩溃。在我调用最小函数后它会立即冻结。是因为我使用矢量吗?