我正在制作一种计算Collatz猜想的方法,并给出给定起始编号,并将其元素(以双精度数组形式)返回。它是称为计算器的类的一部分。所以我的类“计算器”看起来像这样:
public class Calculator {
public static void increaseArraySize(double []a) {
double []an = new double[a.length+1];
for(int i = 0; i<a.length; i++)
an[i] = a[i];
a = an;
}
public static double[] collatzA(double n){
double []a = new double[2];
int i = 0;
while(n>1) {
a[i] = n;
if(n%2==0)
n = n/2;
else
n = 3*n+1;
i++;
increaseArraySize(a);
}
return a;
}
}
但是,当我尝试使用main方法在单独的类中运行它时:
public class CalculatorTest {
public static void main(String[] args) {
System.out.println(Calculator.collatzA(26)); //calculate collatz with 26 as input
}
}
它显示此错误:线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:2
因此,看来我的方法gainArraySize无法正常工作。 知道为什么吗?