You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:37:13