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

如何实现:以控制台输入数为前两项在ArrayList中生成斐波那契数列?

解决斐波那契数列存入ArrayList的问题

没问题,我来帮你搞定这个需求!咱们一步步理清楚逻辑,再给出可运行的代码实现:

核心需求回顾

  • 从控制台获取一个数字,将它作为ArrayList的前两个元素(比如输入1,前两个元素就是1和1)
  • 后续每个元素 = 前两个元素之和(标准斐波那契数列的生成规则)
  • 最后打印整个ArrayList

完整代码实现(Java)

import java.util.ArrayList;
import java.util.Scanner;

public class FibonacciArrayList {
    public static void main(String[] args) {
        // 1. 获取用户输入的起始数字
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数字作为数列的起始元素:");
        int startNum = scanner.nextInt();

        // 2. 让用户指定数列总长度(也可以固定为某个数值,比如10)
        System.out.print("请输入要生成的数列总长度(至少2):");
        int totalLength = scanner.nextInt();
        // 处理长度小于2的异常情况,避免逻辑错误
        if (totalLength < 2) {
            System.out.println("数列长度至少为2,已自动设置为2");
            totalLength = 2;
        }

        // 3. 初始化ArrayList并添加前两个元素
        ArrayList<Integer> fibList = new ArrayList<>();
        fibList.add(startNum);
        fibList.add(startNum);

        // 4. 生成后续的斐波那契元素
        for (int i = 2; i < totalLength; i++) {
            // 获取列表中当前位置的前两个元素
            int prev1 = fibList.get(i - 1);
            int prev2 = fibList.get(i - 2);
            // 计算下一个元素并添加到列表中
            int nextElement = prev1 + prev2;
            fibList.add(nextElement);
        }

        // 5. 打印最终的ArrayList
        System.out.println("生成的斐波那契数列:");
        System.out.println(fibList);

        scanner.close();
    }
}

关键注意点(你之前可能踩坑的地方)

  • 手动添加前两个元素:别指望循环自动生成初始元素,一定要先调用add()把起始数字加入列表两次
  • 循环起始索引要正确:因为前两个元素已经在列表里了,循环要从索引2开始(对应第三个元素)
  • 正确获取前两个元素:用get(i-1)和get(i-2)分别取当前位置的前两个元素,别搞反顺序
  • 不要忘记添加新元素:计算出下一个元素后,必须调用add(nextElement)把它存入ArrayList,不然列表不会更新

示例运行效果

如果输入起始数字1,总长度10,输出会是:

生成的斐波那契数列:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

内容的提问来源于stack exchange,提问作者Георги Иванов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:59:42