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

Java中按100阈值拆分整数并计算的简洁方法?新手求助

简洁实现整数分段计算的几种Java方法

嘿,作为Java初学者,这个分段计算的需求其实有不少简洁的实现方式,咱们一步步来看:

首先先明确你的核心逻辑:

对于输入整数n:

  • 若n ≤ 100,结果为 n * 5
  • 若n > 100,结果为 100*5 + (n-100)*2

下面是几种实用且简洁的写法,从易理解到更优雅的方向排列:

1. 基础条件判断(最适合新手理解)

这是最直观的分支写法,逻辑清晰,新手一眼就能看懂:

public static int calculate(int num) {
    if (num <= 100) {
        return num * 5;
    } else {
        return 500 + (num - 100) * 2;
    }
}

2. 一行式工具函数写法(优雅无分支)

利用Java自带的Math.min和Math.max,可以把逻辑压缩到一行,完全不需要分支判断:

public static int calculate(int num) {
    return Math.min(num, 100) * 5 + Math.max(num - 100, 0) * 2;
}

这里的思路很巧妙:

  • Math.min(num, 100)自动获取100及以内的部分,乘以5
  • Math.max(num - 100, 0)自动提取超过100的部分(没超过就返回0),乘以2
  • 两者相加就是最终结果

3. 简化数学公式写法(高效又简洁)

我们可以把超过100的情况做代数化简:
100*5 + (num-100)*2 = 500 + 2num - 200 = 2num + 300
结合三元运算符,就能写出更高效的一行代码:

public static int calculate(int num) {
    return num <= 100 ? num * 5 : 2 * num + 300;
}

小验证环节

你可以用你的测试用例跑一下这些方法:

  • 输入25 → 25*5=125
  • 输入100 → 100*5=500
  • 输入125 → 2*125+300=550
  • 输入150 → 2*150+300=600
    结果完全符合你的预期~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:53:49