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)
展开
 我来答
百度网友eabd730
推荐于2018-02-12
知道答主
回答量:17
采纳率:100%
帮助的人:2.5万
展开全部
= = for循环里面 i=3 然后还是递增的。。 你里面总共才3个数 最多也只有a.f[2]呀 ,就没有a.f[3]
a.f[3]代表第四个数了, 你没有第四个数。所以数组超出范围了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1这个也可以看出
Array是数组意思对把 index就是索引意思对把 out 就是超出的意思 合起来看这个提示错误 就是你的数组超出了范围了。希望能让你学到~
lmy_sk521
2012-10-25 · TA获得超过2272个赞
知道小有建树答主
回答量:1330
采纳率:73%
帮助的人:711万
展开全部
在输入数字之前数组f[]已经创建完了,数组长度为1,再输入数字也没有用了,所以改为
int[] f;
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);
f = new int[n + 1];
return n;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七彩虹科技有限公司
2018-07-28 · 为您提供更好的产品和服务
七彩虹科技有限公司
七彩虹科技成立于1995年,中国著名的DIY硬件厂商, 亚太区最重要的显示卡提供商之一。专注于IT硬件产品研发、生产和销售,致力于为个人和企业用户提供最具创新与实用价值的硬件产品及应用方案。
向TA提问
展开全部
你的args[]定义的是String数组 只给args[]数组声明 没给它分配空间 所以运行后出现的错误的意思是下标越界,代码如下:、 public class b { public static void main(String args[]){ args=new String[3]; System.out.println("hi!"+args[0]+" "+args[1]+" " +args[2]); } } 加args=new String[3];是个它分配空间你有args[0],args[1],args[2]三个所以是String[3],还可以给这数组赋值,如args[0]=new String("java")
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
buyun654321
2012-10-25
知道答主
回答量:41
采纳率:0%
帮助的人:11.6万
展开全部
Fibonacci 类中的int n没有显示的给出具体的值,在new Fibonacci ()的时候得到的n是他的默认值0,所以数组f的长度是1,但是a.f[1]=1;已经是第二个元素了所以报ArrayIndexOutOfBoundsException异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jimlaren
2012-10-25 · TA获得超过400个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:191万
展开全部
int n;
int f[]=new int[n+1];

n默认为0,f数组永远是只有1个int的数组,你应该在取得n之后再创建数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式