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

Python硬币找零代码计算数值83时镍币计数错误问题求助

错误原因

你的代码核心问题是计算各面额硬币数量时,始终基于原始输入的total值运算,没有扣除已经兑换完成的大面额金额,导致小面额硬币的计算基准错误。

以你出错的输入值83为例,原有逻辑的计算过程如下:

  • 半美元(half):83 // 50 = 1,结果正确,对应金额50
  • 25美分(quarter):83 % 50 //25 = 33//25 =1,结果正确,累计兑换金额75
  • 10美分(dimes):83%25//10 =8//10=0,结果正确,剩余待兑换金额8
  • 镍币(nickels):你用了83%10//5 = 3//5=0,这里直接用原始total取余10得到3,和实际剩余的待兑换金额8不符,所以结果错误
  • 1美分同理也会基于错误的基准计算。
修正方案

你可以新增一个变量存储剩余待兑换的金额,每计算完一种硬币的数量就更新剩余金额,后续所有运算都基于更新后的剩余值即可,不会影响其他数值的计算结果。
修正后的代码如下:

total = int(input("Enter change [0...99]: "))
remain = total
# 计算半美元数量
half = remain // 50
remain = remain % 50
# 计算25美分数量
quarter = remain // 25
remain = remain % 25
# 计算10美分数量
dimes = remain // 10
remain = remain % 10
# 计算5美分、1美分数量
nickels = remain // 5
pennies = remain % 5

print(half, "half (ves)")
print(quarter, "Quarter (s)")
print(dimes, "Dime (s)")
print(nickels, "Nickel (s)")
print(pennies, "penny (s)")

输入83时运行结果为:1个半美元、1个25美分、0个10美分、1个镍币、3个1美分,符合实际找零需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:09:03