欢迎光临散文网 会员登陆 & 注册

Python编程算法【二十】 兑换硬币

2022-10-31 08:46 作者:SPC编程爱好者  | 我要投稿

【案例内容】

将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代码】

最终共有36种不同的兑换方法

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

Python编程算法【二十】 兑换硬币的评论 (共 条)

分享到微博请遵守国家法律