我的程序给了我一个索引越界异常,它想要索引 4 并且由于某种原因在循环的早期迭代之一中具有 1 的大小。
我意识到我可以使用不同的数据结构,但这让我疯狂地试图确定它为什么不起作用。
调试语句的打印输出是 3,3
package euler2;
import java.util.LinkedList;
public class Euler2 {
public static void main(String[] args) {
LinkedList fibNumbers = new LinkedList<>();
fibNumbers.add(0,1);
fibNumbers.add(1,2);
System.out.println(fibNumbers.size() + (int) fibNumbers.indexOf(fibNumbers.getLast()));
while ((int) fibNumbers.getLast() < 4000000) {
System.out.println(fibNumbers.size() + (int) fibNumbers.indexOf(fibNumbers.getLast()));
fibNumbers.addLast(fibNumbers.get((int)(fibNumbers.size()) + (int) fibNumbers.get(fibNumbers.size() - 1)));
}
fibNumbers.removeLast();
int sum = 0;
for (int x = 0; x < fibNumbers.size(); x++) {
sum = sum + (int) fibNumbers.get(x);
}
System.out.println(sum);
}
}