50元兑换1元、2元、5元纸币方案 - 枚举算法实现
我们可以用三重循环枚举每种纸币的数量,然后判断是否符合条件:
count = 0
for i in range(1, 44): # 1元纸币数量范围为1到43
for j in range(1, 23): # 2元纸币数量范围为1到22
for k in range(1, 11): # 5元纸币数量范围为1到10
if i + j + k == 25 and i + 2*j + 5*k == 50:
count += 1
print(count)
其中,第一个循环枚举1元纸币的数量,因为每张1元纸币只能兑换1元,所以它的数量最多只能是50元的整数部分,即43张。同理,2元纸币的数量最多只能是25元的整数部分,即22张;5元纸币的数量最多只能是10元的整数部分,即2张。在枚举过程中,我们判断当前方案是否符合条件,即纸币总数为25张且总面值为50元。如果符合条件,则累加计数器。
经过计算,得到共有22种兑换方案。
原文地址: https://www.cveoy.top/t/topic/mucL 著作权归作者所有。请勿转载和采集!