假设有25美分,10美分,5美分,1美分的硬币足够多,假设有N美分钱,问你怎么用这些硬币表示?
用perl重新做这个问题,前面用
java做过
use strict;
use warnings;
my $count = 0;
sub changes {
my ($coins_ref, $factors_ref, $value) = @_;
my @coins = @$coins_ref;
if($value == 0){
$count++;
print "Result $count\n";
foreach my $key (keys %$factors_ref){
print "coin: $key => $factors_ref->{$key};\n";
}
print "\n";
}elsif(scalar @coins == 1){
$factors_ref->{1} = $value;
$count++;
print "Result $count\n";
foreach my $key (keys %$factors_ref){
print "coin: $key => $factors_ref->{$key};\n";
}
}else {
my $big = shift @coins;
my $num = 0;
while($big * $num <= $value){
my @coins_now = @coins;
my $original = $factors_ref->{$big};
$factors_ref->{$big} = $num;
$value -= $big * $num;
changes(\@coins_now, $factors_ref, $value);
$factors_ref->{$big} = $original;
$value += $big * $num;
$num++;
}
}
}
my @a = (25, 10, 5, 1);
my $b = {25 => 0, 10 => 0, 5 => 0, 1 => 0};
changes(\@a, $b, 26);
分享到:
相关推荐
【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。
简单的程序,会给你很大的启发,特别是初学者!希望对大家会有帮助
算法设计与分析 贪心算法 找零钱问题 算法设计与分析找零钱问题贪心算法 计算机专业
找零钱问题:有6种面值的货币(100,50,20,10,5,1),给定一个钱的数目x,要求用最少的货币数目表示,相同面值的货币可以多次出现。
2.【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。
硬币找零钱问题,求最小硬币数目,输出最小硬币数目,有文件输出操作.
包括源代码、测试用例表、结果截图和实验心得、。还有流程图。
数组b[J]代表要找零的总数。 初始化b[0]=0; b[J]=min{b[J-a[k]]};1;((J-a[k])>=0) 程序中面值有1,3,4,6 存于a数组中 时间复杂度O(M*N) 输出总硬币数
C语言找零钱问题贪心算法 找零钱问题是一个经典的贪心算法问题。示例代码使用贪心算法从最大面额硬币开始尝试找零,以减少硬币数量。贪心算法并不总是找到最优解,但在许多情况下可以找到接近最优解的解。在实际应用...
代码中包含有详细注释,另外还附加了一份报告,关于这个问题的具体分析,具有很好的参考价值
找零钱问题贪心算法c 在上述代码中,`findChange`函数实现了使用贪心算法求解找零钱问题。我们使用一个数组`notes`来存储纸币面额,按照从大到小的顺序排列。然后,我们使用一个`numNotes`数组来记录每种面额纸币的...
综合运用贪心算法,求解不同数目的找零钱问题的源程序
本程序是用c#2008编写的,包括递归的有重复元素的排列问题和半数集问题,动态规划的导弹问题,贪心算法的找零钱问题。
贪心算法 找零钱 c语言 简洁 绝对无误
找零钱问题贪心算法c
动态规划之找零钱问题.zip
实现找零钱 所用个数最少,可以自有输入零钱的面值,再输入要找的零钱,最后输出零钱的使用情况
leetcode找零钱问题动态规划 LeetCode 动态规划 一般解法 注意: 递归算法为从高到底, 动态规划算法为从底到高! 找到转移方程 题目 No.124 二叉树中的最大路径和 No.322 零钱兑换 回溯算法 一般解法 注意: 感觉有点...
leetcode找零钱问题动态规划 2020.10.12开启每日刷题模式。这里记录每日刷题进展与代码目录情况~ 如果对时间复杂度的要求有 \loglog,通常都需要用到二分查找。 动态规划: 数据结构的存储方式只有两种:数组(顺序...