gpt4 book ai didi

java - 输入为零时出现 ArrayIndexOutOfBoundException

转载 作者:行者123 更新时间:2023-12-01 22:02:42 24 4
gpt4 key购买 nike

这是我计算 n 的斐波那契数的代码。当 n = 0ArrayIndexOutOfBoundException 引发时,我不明白。从 fib 函数中,当 n = 0 时,它应该返回 0。这是什么原因造成的呢?

import java.util.Scanner;
public class Fibonacci {
public static int fib(int n) {
int[] t = new int[n + 1];
t[0] = 0;
t[1] = 1;
for (int i = 2; i < t.length; i++) {
t[i] = t[i - 1] + t[i - 2];
}
return t[n];
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for (;;) {
if (!in.hasNextInt()) {
in.next();
continue;
}
int n = in.nextInt();
if (n >= 0) {
System.out.println(fib(n));
} else {
System.out.println("Invalid input!");
}
break;

}
}
}

最佳答案

当 n = 0 时,数组 int[] t = new int[n + 1]; 仅包含 1 个元素。但是,您尝试分配两个元素:

t[0] = 0;t[1] = 1;

关于java - 输入为零时出现 ArrayIndexOutOfBoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33446881/

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