java - 我无法使 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 等等
解决方案
您首先将数组设置为:
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];
推荐阅读
- github-api - 是否有一个端点可以为 github 激活“文件查找器”
- prolog - 在 SWI-Prolog 中自动化我的宠物调试策略
- java - 如何检查@RequestParam 中的单选按钮的值?
- javascript - JQUERY + 符号继续添加输入退格键
- java - 使用本机将数据插入 BigQuery 使用 Java 插入查询
- python-3.x - Youtube oauth2 授权返回 redirect_uri_mismatch
- go - 数组的字符串表示
- api - Akamai APi 请求无效。过滤器的值不正确
- java - 如何在 springframework.data.domain.sort 中仅用一天对 Instant 进行排序
- python - Python - 在日期列表中找不到特定日期