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

Java实现优惠券兑换糖果口香糖程序计算逻辑问题求助

代码存在的问题

  • 变量名不匹配:你定义的存储优惠券数量的变量是numOfCoupons,计算糖果数量时误用了不存在的变量couponNumbers,会直接导致编译失败。
  • 口香糖计算逻辑错误:你当前用糖果数量取模3的逻辑完全不符合兑换规则,没有先计算兑换糖果后剩余的优惠券。

正确计算逻辑

兑换的核心逻辑是优先兑换尽可能多的糖果,再用兑换糖果后剩下的优惠券兑换口香糖:

  1. 糖果数量 = 优惠券总数 / 10 (整数除法自动取整,你这部分的逻辑思路是对的,只需要修正变量名即可)
  2. 兑换糖果后剩余的优惠券 = 优惠券总数 % 10
  3. 口香糖数量 = 剩余优惠券 / 3 (同样用整数除法取整)

修正后完整代码

import java.util.Scanner;

public class CouponRedeem {
    public static void main(String[] args) {
        int candies, gumballs, numOfCoupons;    

        Scanner scan = new Scanner(System.in);

        System.out.println("Enter number of coupons:");
        numOfCoupons = scan.nextInt();
        scan.close();

        candies = numOfCoupons / 10;
        // 计算兑换糖果后剩余的优惠券
        int leftAfterCandy = numOfCoupons % 10;
        gumballs = leftAfterCandy / 3;

        System.out.println("Number of Candies: " + candies);
        System.out.println("Number of Gumballs: " + gumballs);
        // 如需展示最终无法兑换的优惠券,可补充输出 leftAfterCandy % 3
    }
}

效果验证

  • 输入64:糖果=6,兑换糖果后剩余4张优惠券,口香糖=1,和你给出的示例2输出完全一致
  • 输入7:糖果=0,剩余7张优惠券,口香糖=2,符合小于10大于等于3时仅输出口香糖的要求
  • 输入2:糖果=0,口香糖=0,无可用兑换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:24:03