我是 Java 新手,目前正在尝试学习如何最好地将数字存储在数组中。
我正在处理的具体问题是试图找到一种方法,通过将计算存储在数组中来更好地实现以下方法。
代码如下所示:
public static long myF(int N) {
long[] computedValues;
computedValues = new long[N+1];
computedValues[0] = 0;
computedValues[1] = 1;
for (int i = 2; i < computedValues.length ;i++){
computedValues[i] = computedValues[(i-1)]+computedValues[(i-2)];
System.out.println("array["+(i)+"] = "+computedValues[i]);
}
return computedValues[N-1];
}
public static void runMyF() {
for (int N = 0; N < 100; N++)
StdOut.println(N + " " + myF(N));
}
public static void main(String[] args) {
runMyF ();
}
这段代码中的 main 应该调用 runMyF(),然后 runMyF() 应该调用 myF()。我的问题是我无法得到 computedValues[0] = 0; 计算值[1] = 1; 包含在输出中,第二个问题是,即当 runMyF() 调用 myF() 时收到此错误消息:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at algs11.MyFib.myF(MyFib.java:21)
at algs11.MyFib.runMyF(MyFib.java:30)
at algs11.MyFib.main(MyFib.java:37)
请问有什么帮助吗?@Dukeling,您的解决方案有点超出我的工资等级(抱歉)-我认为我的代码中有一些错误,我需要帮助才能找到它们。谢谢你。