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

Java实现Exact Change找零功能 作业输出与预期不符问题求助

代码问题诊断

你的代码核心错误出在硬币数量的计算逻辑上:

  • Quarters的计算逻辑完全错误:你写的int numQuarters = (cents % 25) / 25;中,cents % 25是总金额除以25得到的余数,结果必然小于25,再除以25结果永远是0,所以Quarters的统计结果永远为0,这就是你两次测试都缺失Quarters的直接原因。
  • 没有遵循「先统计大面额、扣减后再统计小面额」的贪心算法逻辑,所有小面额的计算都没有扣除更高面额硬币对应的金额,导致后续计算也存在潜在错误。
修正方案

只需要替换原来的硬币数量计算部分的代码即可,单复数判断逻辑无需修改:

int numDollars = cents / 100;
int remaining = cents % 100; // 扣除美元后剩余的零钱
int numQuarters = remaining / 25;
remaining = remaining % 25; // 扣除Quarters后剩余的零钱
int numDimes = remaining / 10;
remaining = remaining % 10; // 扣除Dimes后剩余的零钱
int numNickels = remaining / 5;
int numPennies = remaining % 5;
验证测试
  • 输入45:计算得到numQuarters=1、numDimes=2,输出符合预期
  • 输入141:计算得到numQuarters=1,输出符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:04