Python编程算法【二十】 兑换硬币
【案例内容】
将5元的人民币换成1元、5角和1角的硬币,共有多少种不同的兑换方法?
【解题思路】
本题又是一道穷举法的编程算法题。假设1元的数量为 yy,5角的数量为 wj,1角的数量为 yj。那么,可以将5元换算成50分,1元换算成10分,然后根据题意去循环找出满足等式:
yy * 10 + wj * 5 + yj * 1 = 50 的所有 yy、wj 和 yj 的值;也可以将5角换算成0.5元,1角换算成0.1元,然后找出所有满足等式:yy * 1 + wj * 0.5 + yj * 0.1 = 5 的yy、wj 和 yj 的值即可。
另外,yy(1元的数量)的取值范围在0 - 5之间,包括0和5;
wj(5角的数量)的取值范围在0 - 10之间,包括0和10;
yj(1角的数量)的取值范围在0 - 50之间,包括0和50;
再设个变量 n ,用来记录兑换方法,最后用三个for循环即可找出所有兑换方法。
【Python代码】

把本题的5元改为其他数额,代码也可以通用。需注意的是,兑换时,每种数额不同的硬币数量可以为0,即不兑换该数额的硬币,这种情况也要考虑进去,这是题目隐含的一个条件。