gpt4 book ai didi

java - 用数学序列填充数组

转载 作者:行者123 更新时间:2023-11-29 08:26:05 26 4
gpt4 key购买 nike

我想编写一个代码,请求三个数字 dig(1)、dig(2)、dig(3) 并显示数字序列 dig(1)、dig(2)、dig(3), . .., dig(n) 根据这个规则:

  • a = dig(2) - dig(1)
  • b = dig(3) - dig(2)
  • dig(n) = dig(n-1) + a if n is odd
  • dig(n) = dig(n-1) + b if n is even

例子:

7, 8, 5, 6, 3, 4, 1, 2, -1, 0

  • 它要求用户输入三个整数 dig1、dig2、dig3
  • 它要求一个 N ≥ 3 的数字,这将是整个序列计数。
  • 它打印一个以
  • 开头的序列

然后打印序列,从三个前导整数开始,然后是 N-3 个其他项,这些项遵循前三个整数定义的模式。有关更多信息,请参见下面的示例。

(序列从n = 1开始,当然数组是从0开始的。)

int dig1  = 0;
int dig2 = 0;
int dig3 = 0;
int a;
int b;
int n = 0;
int i;

dig1 = scnr.nextInt();
dig2 = scnr.nextInt();
dig3 = scnr.nextInt();
n = scnr.nextInt();

int[] array = new int[n];

array[0] = dig1;
array[1] = dig2;
array[2] = dig3;
a = dig2 - dig1;
b = dig3 - dig2;

for (i = 3; i < n; i++){
if(i%2 == 0){
array[i] = b + array[i-1];
}
else{
array[i] = a + array[i-1];
}
}
System.out.println(array[i]);

}
}

每当我尝试打印出来时,我都会收到此错误:

java.lang.ArrayIndexOutOfBoundsException

另一个例子:如果我输入数字:0 1 0 9,我应该收到序列 0 1 0 1 0 1 0 1 0

打印 array[n-1] 只返回最终输出。我正在尝试遍历每个数字。

抱歉,如果不清楚,但任何帮助都会很好,谢谢。

最佳答案

您的 System.out.println(array[i]); 似乎超出了 for 循环。然后 i 将等于 n。并且在长度为 n 的数组中没有索引为 n 的元素。元素从0n-1

关于java - 用数学序列填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com