首页 > 解决方案 > 我无法使 length-1 的值正常工作,也无法使用简单数组更新数组

问题描述

我是java新手,在下面的代码中我试图实现的是将第一个索引设置为一个数字,第二个索引设置为相同的数字,第三个索引是在数组中添加第一个和第二个索引,然后尝试添加最后一个数组中的三个索引并将此数字添加到现有数组中,但不知道为什么 length-1 不起作用,我将不胜感激。

package com.company;
import java.util.*;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        try {
    
            int [] arr = new int[10];
            int number = 10;
            arr[0] = number;
            arr[1] = number;
            arr[2] = number + number;

            for(int i = 0; i < 7; i++){
                arr[i + 3] = arr[arr.length -1] + arr[arr.length -2] + arr[arr.length -3];

            }
            for(int j =0; j < arr.length; j++){
                System.out.print("\t" + arr[j]);
            }
        }catch (Exception e) {
            System.out.println("error is  " + e);
        }


    }
}

这是我得到的输出 10 10 20 0 0 0 0 0 0 0 但预期输出是 10 20 30 50 80 160 290 等等

标签: javaarrays

解决方案


您首先将数组设置为:

10 10 20 X ... 0

您的循环正在执行以下操作:

设置 X = (length -1) +(length-2)。但是,在运行循环时,数组中的最后一个条目不是 20 和 10,而是 0 和 0,因为长度为 10(数组中的 10 位数字)。因此,您始终指的是数组中的最后两位数字。

如果我了解您想要的输出。您可以通过将其更改为:

        arr[i + 3] = arr[i+2] + arr[i+1] + arr[i];

推荐阅读