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

如何在Java列表的相邻元素间插入二者之和?

解决整数列表交替插入相邻元素和的问题

需求说明:
将手动输入的任意长度整数列表(以输入0结束)转换为新列表,格式为原元素与相邻元素之和交替排列。例如输入序列3 2 4,输出应为3 5 2 6 4,其中5是3与2的和,6是2与4的和。

现有代码问题分析

你的代码存在两处核心问题:

  • 未定义变量i,导致list.add(i, number)出现语法错误
  • 相邻元素求和的逻辑未实现,元素插入的顺序和位置不符合需求

修正后的代码

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    List<Integer> list = new LinkedList<>();
    
    int number;
    while (true) {
      number = sc.nextInt();
      if (number == 0) break;

      if (list.size() == 0) {
        // 第一个元素直接添加
        list.add(number);
      } else {
        // 先计算最后一个元素与当前元素的和,添加到列表末尾
        int last = list.get(list.size() - 1);
        int sum = last + number;
        list.add(sum);
        // 再添加当前元素
        list.add(number);
      }
    }
    
    System.out.println("result:");
    for (int n : list) {
      System.out.print(n + " ");
    }

    sc.close();
  }
}

关键逻辑解释

  1. 第一个元素处理:当列表为空时,直接将输入的第一个整数添加到列表中
  2. 后续元素处理:
    • 获取列表的最后一个元素(即当前输入元素的前一个原元素)
    • 计算两者的和,将和插入到列表末尾
    • 再将当前输入的整数添加到列表末尾
  3. 终止条件:输入0时跳出循环,输出最终列表

运行示例

输入:3 2 4 0
执行流程:

  • 输入3 → 列表变为[3]
  • 输入2 → 计算3+2=5,添加后列表变为[3,5],再添加2 → [3,5,2]
  • 输入4 → 计算2+4=6,添加后列表变为[3,5,2,6],再添加4 → [3,5,2,6,4]
  • 输入0 → 终止循环,输出result: 3 5 2 6 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:15:18