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

Java编程求满足1+2+…+n>输入limit value的最小正整数n

求解满足累加和大于限值的最小正整数n的Java实现修正

需求说明

实现Java程序,输入一个正整数作为限值limit value,找到满足判定条件 1 + 2 + 3 + … + n > limit value 的最小正整数n。
已知规则示例:

  • 输入限值为6时,正确n值为4,对应累加和为1+2+3+4=10>6
  • 输入限值为7时,正确n值为4,对应累加和为1+2+3+4=10>7

原有代码问题排查

原有实现代码如下:

class LimitValue {
    public static void main(String[] args) {
        int n, sum, limit_value;
        
        Scanner scan = new Scanner(System.in);
        
        System.out.print("Enter limit value: ");
        limit_value = scan.nextInt();
        
        n = 0;
        sum = 0;
        while (sum < limit_value) {
            sum = sum + n;
            n++;
        }
        
        System.out.println("n = " + n);
    }
}

代码存在3个核心问题:

  1. 缺少java.util.Scanner类的导入语句,代码无法直接编译运行
  2. 循环内执行顺序错误:初始n=0,第一次循环先执行sum = sum +n时加的是0,属于无效计算,后续累加的顺序和n自增的顺序错位,导致n的计数比实际值偏大
  3. 循环判定条件不严谨:当累加和sum等于限值时,仍然不满足sum > limit value的要求,需要继续累加,原有条件sum < limit_value在sum等于限值时会直接退出循环,边界场景计算错误

修正后的实现代码

调整循环执行顺序、修正边界判定、补全导入语句后的可运行代码如下:

import java.util.Scanner;

class LimitValue {
    public static void main(String[] args) {
        int n, sum, limitValue;
        
        Scanner scan = new Scanner(System.in);
        
        System.out.print("Enter limit value: ");
        limitValue = scan.nextInt();
        
        n = 0;
        sum = 0;
        while (sum <= limitValue) {
            n++;
            sum += n;
        }
        scan.close();
        
        System.out.println("n = " + n);
    }
}

逻辑说明

  • 初始n和sum都置为0,只要sum还没有超过限值,就持续执行循环
  • 每次循环先将n自增1,保证第一次累加的值为1,后续依次累加2、3、4……,不会出现加0的无效操作
  • 自增n后将n的值加到sum上,再判断sum是否已经超过限值,满足条件则直接退出循环,此时的n就是要求的最小正整数

测试结果验证

修正后的代码运行所有测试用例结果均符合预期:

  • 输入1,输出n=2,对应累加和1+2=3>1
  • 输入2,输出n=2,对应累加和1+2=3>2
  • 输入4,输出n=3,对应累加和1+2+3=6>4
  • 输入5,输出n=3,对应累加和1+2+3=6>5
  • 输入7,输出n=4,对应累加和1+2+3+4=10>7
  • 输入10,输出n=5,对应累加和1+2+3+4+5=15>10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:33:27