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

Java初学者找零代码:如何移除residual变量?

移除找零代码中的residual变量方案

直接复用原方法的money变量存储剩余找零金额即可,修改后的代码如下:

import java.util.Arrays;

public static int[] change(int money, int price) {
    int[] coins = {10, 5, 2, 1};
    int[] rsl = new int[100];
    int size = 0;
    // 用money存储找零剩余,替代原residual变量
    money -= price;
    for (int coin : coins) {
        while (money >= coin) {
            money -= coin;
            rsl[size] = coin;
            size++;
        }
    }
    return Arrays.copyOf(rsl, size);
}

逻辑说明

原代码里residual的核心作用就是保存money - price的找零剩余金额,我们直接把这个差值赋值给money变量,后续所有对residual的操作都替换为对money的操作,完全保留了原有的贪心找零逻辑:

  • 按硬币面值从大到小遍历
  • 每次尽可能多地使用当前面值硬币,直到剩余金额不足以使用该面值
  • 最终返回整理后的找零硬币数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:00:05