首页 > 编程知识 正文

钱币兑换问题C语言,快速排序算法c语言

时间:2023-05-03 11:40:27 阅读:110761 作者:1077

这似乎类似于分区,除了1:50不使用所有整数。 似乎也类似于跳跃的汽车包装问题,但有点不同:

其实考虑之后,是an ILP,NP-hard。

我推荐一些动态编程appyroach。 基本上,定义值“余数”,并将其设定为目标(例如50 )。 然后,在每一步中执行以下操作:

找到适合剩下最大硬币的东西

请想想如果你(a )含有硬币,或者(b )不含有该硬币会发生什么。

按场景递归

所以如果剩下的是50,最大的硬币是25和10,你可以分为两种情况:

1. Remainder=25,Coinset=1x25

2. Remainder=50,Coinset=0x25

下一步(每个分支)可能如下:

1-1. Remainder=0,Coinset=2x25 Logged

1-2. Remainder=25,Coinset=1x25

2-1. Remainder=40,coinset=0x 25,1 X10

2-2.remainder=50,0x 10

每个分支分为两个分支,但以下情况除外:

剩下的是0 (在这种情况下你记录它)。剩下的是比最小的硬币)。在这种情况下你把它扔掉)。剩下的硬币不会再多了)。在这种情况下,你把它扔掉。 因为有多余的!=0)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。