java.lang.NullPointerException ????

fengdeguiji 2010-09-03 01:28:11
//以非递归方式解决Test11 An=An-1+An-2
public class Test11 {
public static void main(String[] args){
System.out.println(method(40));
}
public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[]=null;
a[0]=1;
a[1]=1;
for(i=3;i<40;i++){
a[i]=a[i-1]+a[i-2];
}
return a[i];
}
}

}
...全文
104 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongboyongqi 2010-09-03
  • 打赏
  • 举报
回复
int a[]=null;
数组在使用之前必须被声明且被初始化
boooch 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sunjinyujeep 的回复:]
Java code

//以非递归方式解决Test11 An=An-1+An-2
public class Test11 {
public static void main(String[] args) {
System.out.println(method(40));
}

public static long method(int n){……
[/Quote]
下标搞错了。。。for循环要从2开始。。。
java2000_net_net 2010-09-03
  • 打赏
  • 举报
回复
此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【fengdeguiji】截止到2010-09-03 13:28:11的历史汇总数据(不包括此帖):
发帖数:2 发帖分:100
结贴数:0 结贴分:0
未结数:2 未结分:100
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
boooch 2010-09-03
  • 打赏
  • 举报
回复
为何要用数组,这样大小不好控制,我改了下你的代码:

public class Test11 {

public static long method(int n){
int k=0;
if(n==1||n==2){
return 1;
}else{
int x,y;
x=y=1;

for(int i=3;i<=n;i++){
k=x+y;
x=y;
y=k;
}
return k;
}
}

public static void main(String[] args){
System.out.println(method(7));
}
}
ycyyww 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sunjinyujeep 的回复:]

Java code

//以非递归方式解决Test11 An=An-1+An-2
public class Test11 {
public static void main(String[] args) {
System.out.println(method(40));
}

public static long method(int n){
……
[/Quote]nb
sunjinyujeep 2010-09-03
  • 打赏
  • 举报
回复

//以非递归方式解决Test11 An=An-1+An-2
public class Test11 {
public static void main(String[] args) {
System.out.println(method(40));
}

public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[] = new int[n];//第一个要注意的地方
a[0]=1;
a[1]=1;
for(i=3;i<n;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n-1];//第二个要注意的地方
}
}




}
zqfddqr 2010-09-03
  • 打赏
  • 举报
回复
空指针异常。。
Rain208 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 baiyu123 的回复:]
引用 5 楼 zhaolinger2 的回复:
写错了,重来


Java code

public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[] = new int[40];//第一个要注意的地方
……

]

for(i=2;i<40;i++){ //第三……
[/Quote]

up



学习Java中 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhaolinger2 的回复:]
写错了,重来


Java code

public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[] = new int[40];//第一个要注意的地方
……
[/Quote]
]

for(i=2;i<40;i++){ //第三个要注意的地方
zhaolinger2 2010-09-03
  • 打赏
  • 举报
回复
写错了,重来


public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[] = new int[40];//第一个要注意的地方
a[0]=1;
a[1]=1;
for(i=3;i<40;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n-1];//第二个要注意的地方
}
}

zhaolinger2 2010-09-03
  • 打赏
  • 举报
回复

public static long method(int n){
if(n==1||n==2){
return 1;
}
else{
int i;
int a[] = new int[n];//第一个要注意的地方
a[0]=1;
a[1]=1;
for(i=3;i<40;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n-1];//第二个要注意的地方
}
}
l3751202 2010-09-03
  • 打赏
  • 举报
回复
int a[]=null;都等于null了,当然会抛NullPointerException了
改成int[] a = new int[40];
zhaolinger2 2010-09-03
  • 打赏
  • 举报
回复
你写成int a[40];倒还可以原谅
zhaolinger2 2010-09-03
  • 打赏
  • 举报
回复
int a[]=null;
a[0]=1;
a[1]=1;

能这么定义后使用吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧