仅用if语句实现金额纸币数量统计的代码求助
用仅if语句实现纸币面额拆分
以人民币常用面额(500、100、50、20、10、5、1)为例,核心思路是从最大面额开始,依次判断剩余金额是否足够兑换该面额纸币,若足够则计数加1并扣除对应金额,用多次if判断模拟循环计数逻辑(因为作业限制仅用if语句)。
以下是Python实现代码:
# 获取输入金额 amount = int(input("请输入金额: ")) # 初始化各面额计数 count_500 = 0 count_100 = 0 count_50 = 0 count_20 = 0 count_10 = 0 count_5 = 0 count_1 = 0 # 处理500面额(最多2张,若需更大金额可追加if) if amount >= 500: count_500 += 1 amount -= 500 if amount >= 500: count_500 += 1 amount -= 500 # 处理100面额(最多4张,剩余金额最大为499) if amount >= 100: count_100 += 1 amount -= 100 if amount >= 100: count_100 += 1 amount -= 100 if amount >= 100: count_100 += 1 amount -= 100 if amount >= 100: count_100 += 1 amount -= 100 # 处理50面额(最多1张) if amount >= 50: count_50 += 1 amount -= 50 # 处理20面额(最多2张) if amount >= 20: count_20 += 1 amount -= 20 if amount >= 20: count_20 += 1 amount -= 20 # 处理10面额(最多1张) if amount >= 10: count_10 += 1 amount -= 10 # 处理5面额(最多1张) if amount >= 5: count_5 += 1 amount -= 5 # 处理1面额(最多4张) if amount >= 1: count_1 += 1 amount -= 1 if amount >= 1: count_1 += 1 amount -= 1 if amount >= 1: count_1 += 1 amount -= 1 if amount >= 1: count_1 += 1 amount -= 1 # 输出结果 print(f"500: {count_500}、100: {count_100}、50: {count_50}、20: {count_20}、10: {count_10}、5: {count_5}、1: {count_1}")
关键说明:
- 从大面额到小面额依次处理,符合常规找零逻辑
- 每个面额的
if数量根据剩余金额的最大可能值设置,比如处理完500后剩余金额最多499,所以100面额最多需要4个if - 输入575时,输出结果为
500: 1、100: 0、50: 1、20: 1、10: 0、5: 1、1: 0,完全匹配需求 - 若作业要求其他面额(如美元、欧元),只需替换面额对应的判断和计数变量即可
内容的提问来源于stack exchange,提问作者asif ali
相关产品推荐
相关产品推荐

