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

Python零钱兑换非零结果格式化输出问题求助

零钱兑换格式输出问题解决思路

需求回顾

接收整数形式的总零钱金额,用最少硬币数输出兑换结果,每种硬币占一行,需正确使用单复数形式(如1 Penny、2 Pennies),硬币类型为Dollars、Quarters、Dimes、Nickels、Pennies。

当前问题

已完成硬币数量计算,但不知道如何按要求格式打印(去除零值、单复数正确、每种占一行)。

解决思路

  1. 关联数量与硬币名称:不要单独存储数量,将数量和对应的硬币单复数名称绑定成元组列表,后续处理时能直接对应,避免名称匹配混乱。
  2. 过滤零值:遍历绑定后的列表,直接剔除数量为0的硬币项。
  3. 处理单复数:对每个非零项,根据数量判断使用单数还是复数名称——数量为1时用单数,其余用复数。
  4. 逐行打印:遍历处理后的结果,每一项单独打印一行。

修改后的代码

change = int(input())

# 存储(数量, 单数名称, 复数名称)的元组列表
coins = [
    (change // 100, "Dollar", "Dollars"),
    (change % 100 // 25, "Quarter", "Quarters"),
    (change % 100 % 25 // 10, "Dime", "Dimes"),
    (change % 100 % 25 % 10 // 5, "Nickel", "Nickels"),
    (change % 100 % 25 % 10 % 5, "Penny", "Pennies")
]

# 过滤零值并处理单复数
result = []
for count, singular, plural in coins:
    if count > 0:
        result.append(f"{count} {singular}" if count == 1 else f"{count} {plural}")

# 逐行打印结果
for line in result:
    print(line)

代码说明

  • 用元组列表把每个硬币的数量和对应单复数名称绑定,解决了单独存数量时名称匹配的问题。
  • 遍历过程中同步完成零值过滤和单复数判断,逻辑简洁清晰。
  • 最终逐行输出结果,完全符合需求格式。

内容的提问来源于stack exchange,提问作者user21922227

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:03:13