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

Java实现:求输入中三个连续整数的最大和(禁用数组,999终止输入)

解决连续三数最大和的Java实现(无数组)

需求回顾

接收数字输入直到输入999为止(999不计入):

  • 若输入数字≥3个,计算并输出三个连续输入数字的最大和
  • 若输入数字不足3个,输出所有输入数字的总和
  • 禁止使用数组存储输入数据

示例:输入7 2 9 8 7 6 7 5 9 999时,最大和为24(由9+8+7得到)


实现思路

因为不能用数组,我们只需要维护最近输入的3个数字,通过滚动更新这三个变量来计算连续三数之和,同时记录输入总数、总和以及当前最大三数和:

  1. 用三个变量prev2、prev1、current分别保存倒数第三、倒数第二、最新输入的数字
  2. 每输入一个有效数字(非999),更新总和与输入计数
  3. 当输入计数≥3时,计算当前三数之和,与maxSum比较并更新最大值
  4. 循环结束后,根据输入计数决定输出最大三数和还是总和

完整Java代码

import java.util.Scanner;

public class MaxThreeSum {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 初始化变量:保存最近三个输入的数字
        int prev2 = 0;
        int prev1 = 0;
        int current = 0;
        
        int sumCount = 0; // 统计有效输入数字的数量
        int totalSum = 0; // 所有有效数字的总和
        int maxSum = Integer.MIN_VALUE; // 初始化最大三数和为最小值
        
        while (true) {
            int num = scanner.nextInt();
            if (num == 999) {
                break; // 遇到999终止输入
            }
            
            sumCount++;
            totalSum += num;
            
            // 滚动更新最近三个数字
            if (sumCount == 1) {
                prev2 = num;
            } else if (sumCount == 2) {
                prev1 = num;
            } else {
                current = num;
                // 计算当前三数之和
                int currentSum = prev2 + prev1 + current;
                // 更新最大和
                if (currentSum > maxSum) {
                    maxSum = currentSum;
                }
                // 滚动变量:prev2变为原来的prev1,prev1变为当前数字
                prev2 = prev1;
                prev1 = current;
            }
        }
        
        // 根据输入数量决定输出内容
        if (sumCount < 3) {
            System.out.println(totalSum);
        } else {
            System.out.println(maxSum);
        }
        
        scanner.close();
    }
}

代码关键点说明

  • 滚动变量更新:当输入第3个及以后的数字时,prev2和prev1会向前滚动,始终保持存储最近的三个数字,无需数组即可追踪连续序列
  • 边界处理:输入不足3个时直接输出总和,避免了无效的三数和计算
  • 初始化细节:maxSum初始化为Integer.MIN_VALUE,确保第一个三数和能正确覆盖初始值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:01:09