
java 提示错误Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
importjava.io.*;publicclassFibonacci{intn;intf[]=newint[n+1];intgetN()throwsIOExcepti...
import java.io.*;
public class Fibonacci {
int n;
int f[]=new int[n+1];
int getN() throws IOException{
String inputString;
System.out.println("请输入n: ");
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
inputString=a.readLine();
n=Integer.parseInt(inputString);
return n;
}
public static void main(String[] args) throws IOException {
Fibonacci a=new Fibonacci();
int n1 = a.getN();
a.f[0]=0;
a.f[1]=1;
a.f[2]=1;
for(int i=3;i<=n1;i++){
a.f[i]=a.f[i-1]+a.f[i-2];
System.out.println("F["+i+"]是"+a.f[i]);
a.f[i-1]=a.f[i];
a.f[i-2]=a.f[i-1];
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Fibonacci.main(Fibonacci.java:19) 展开
public class Fibonacci {
int n;
int f[]=new int[n+1];
int getN() throws IOException{
String inputString;
System.out.println("请输入n: ");
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
inputString=a.readLine();
n=Integer.parseInt(inputString);
return n;
}
public static void main(String[] args) throws IOException {
Fibonacci a=new Fibonacci();
int n1 = a.getN();
a.f[0]=0;
a.f[1]=1;
a.f[2]=1;
for(int i=3;i<=n1;i++){
a.f[i]=a.f[i-1]+a.f[i-2];
System.out.println("F["+i+"]是"+a.f[i]);
a.f[i-1]=a.f[i];
a.f[i-2]=a.f[i-1];
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Fibonacci.main(Fibonacci.java:19) 展开
9个回答
展开全部
数组越界了
int n; //0
int f[]=new int[n+1]; //只执行一次
只为数组f创建了一个空间, 输入任何数都不会影响f
int n; //0
int f[]=new int[n+1]; //只执行一次
只为数组f创建了一个空间, 输入任何数都不会影响f
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有构造函数。new出来的对象n默认是0.那么你的那个数组只有1的长度。所以a.f[1]=1;报越界
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是没有传入参数~~需要手动传入参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |