Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 哪一个是解决这个算法难题的好算法?_C_Dynamic_Coin Change - Fatal编程技术网

C 哪一个是解决这个算法难题的好算法?

C 哪一个是解决这个算法难题的好算法?,c,dynamic,coin-change,C,Dynamic,Coin Change,给我一笔钱,比如说50美元。 我得到了一些面额,比如1美元、2美元、5美元等,这些面额的数量,例如1、5、6,这意味着1美元的硬币/纸币、5美元的硬币/纸币和6美元的硬币/纸币。 我必须找到这些硬币可以用来形成50美元的数量。 我正试图想出一个有效的算法,以尽可能快的时间解决这个问题。 请注意,金额永远不会超过60美元 有人能建议我用哪种算法来解决这个问题吗? 到目前为止,我已经为这个问题编写了一个递归解决方案,但速度太慢了。我将很快在这里发布。我同意这里不是做作业的地方,但仍然。。。询问者并不

给我一笔钱,比如说50美元。 我得到了一些面额,比如1美元、2美元、5美元等,这些面额的数量,例如1、5、6,这意味着1美元的硬币/纸币、5美元的硬币/纸币和6美元的硬币/纸币。 我必须找到这些硬币可以用来形成50美元的数量。 我正试图想出一个有效的算法,以尽可能快的时间解决这个问题。 请注意,金额永远不会超过60美元

有人能建议我用哪种算法来解决这个问题吗?
到目前为止,我已经为这个问题编写了一个递归解决方案,但速度太慢了。我将很快在这里发布。

我同意这里不是做作业的地方,但仍然。。。询问者并不期望得到解决方案,他只是在问方向。让我们不要毫无必要地把问题悬而未决


看看

听起来你不是在这里发布作业就是在这里发布挑战。。。应该看看另一个地方,比如code golf()。如果您的递归很慢,请考虑“缓存递归”,它在您的情况下会很好地工作(请记住,你可以先拿最高的账单。@RedX:是的,我知道背包的问题,但那是重量/数量较小或相等的问题。@Bruce:这不是家庭作业/挑战。在任何在线活动编码竞赛中搜索这个问题。如果你找到了,请立即删除这个问题。无论如何,我还在放暑假,所以没有问题这是家庭作业分解不是特别有用。分区可能更好。这不是家庭作业/挑战。在任何在线活动编码竞赛中搜索此问题。如果找到它,请立即删除此问题。无论如何,我仍有暑假,所以这是毫无疑问的homework@friendzid:以上评论是为了you@AjaxAristodemos:好的。这可能是一个背包问题。这对任意硬币(非素数值)最有效。在你的问题中,你提到了素数为$1、$1和$5的硬币。通过分解原始数字,你可以很容易地分辨出来(通过比较加权列表)如果答案是0。有两个硬币和系数的加权列表,你只需要计算组合-简单的数学