由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - NullPointerException 问题
相关主题
问个primitive type的问题请教一个简单的问题
折腾了一天,实在是绝望了,请教请教简单问题
问一个java基础的初始化的问题,一直搞不明白 (转载)anyone saw this on code?
新手求助,急急急!!!interesting
help "java.lang.NoSuchMethodError"thread safe Singleton 的几种方法?
这几个函数可以用Generic之类的东西合并么?新手对switch语句的迷惑
请教:怎样函数里改变一个Double变量的值?增加点难度 java core
Test your PC speedwhat is your opinion in this case?
相关话题的讨论汇总
话题: known话题: biginteger话题: return话题: static
进入Java版参与讨论
1 (共1页)
f****l
发帖数: 14
1
下面的程序执行的时候报错:
Exception in thread "main" java.lang.NullPointerException
at FibSequence.F(FibSequence.java:26)
at FibSequence.main(FibSequence.java:8)
请问是什么原因,应该如何改? 谢谢。
1 import java.util.*;
2 import java.math.*;
3
4 public class FibSequence
5 {
6 public static void main(String[] args)
7 {
8 System.out.println(F(8));
9 }
10
11
12 private static BigInteger[] known = new BigInteger[50];
13 static
14 {
15 for (BigInteger b : known) b = BigInteger.ZERO;
16 known[1] = BigInteger.ONE;
17 known[2] = BigInteger.ONE;
18 }
19
20
21 public static BigInteger F(int N)
22 {
23 if (N <= 0) return BigInteger.ZERO;
24 if( 1 == N ) return BigInteger.ONE;
25 if (2 == N ) return BigInteger.ONE;
26 if( known[N].compareTo(BigInteger.ZERO) != 0 ) return known[N];
27
28 return known[N] = F(N-1).add(F(N-2)).add(F(N-3));
29 // return known[N] = result;
30
31 }
32 }
c*****u
发帖数: 562
2
问题在于第15行
初始化的方式不对
15行只是在不停的把临时变量b修改为ZERO
数组本身并没有改变

【在 f****l 的大作中提到】
: 下面的程序执行的时候报错:
: Exception in thread "main" java.lang.NullPointerException
: at FibSequence.F(FibSequence.java:26)
: at FibSequence.main(FibSequence.java:8)
: 请问是什么原因,应该如何改? 谢谢。
: 1 import java.util.*;
: 2 import java.math.*;
: 3
: 4 public class FibSequence
: 5 {

f****l
发帖数: 14
3
明白了,改过之后就可以了。 谢谢你的回答。

【在 c*****u 的大作中提到】
: 问题在于第15行
: 初始化的方式不对
: 15行只是在不停的把临时变量b修改为ZERO
: 数组本身并没有改变

r*****l
发帖数: 2859
4
This shows an interesting limitation that an enhanced for loop has: the
element is immutable in the loop.
g*****g
发帖数: 34805
5
this is equals to
for(int i =0; i < arr.length; i++) {
int b = arr[i];
b = 1;
}
Of course the initialization won't work.

【在 r*****l 的大作中提到】
: This shows an interesting limitation that an enhanced for loop has: the
: element is immutable in the loop.

r*****l
发帖数: 2859
6
And you have to use normal loop in this case.

【在 g*****g 的大作中提到】
: this is equals to
: for(int i =0; i < arr.length; i++) {
: int b = arr[i];
: b = 1;
: }
: Of course the initialization won't work.

1 (共1页)
进入Java版参与讨论
相关主题
what is your opinion in this case?help "java.lang.NoSuchMethodError"
一道java面试题 (转载)这几个函数可以用Generic之类的东西合并么?
这段程序的输出是什么? 为什么请教:怎样函数里改变一个Double变量的值?
大虾们能帮我看看这个程序问题出在哪么?Test your PC speed
问个primitive type的问题请教一个简单的问题
折腾了一天,实在是绝望了,请教请教简单问题
问一个java基础的初始化的问题,一直搞不明白 (转载)anyone saw this on code?
新手求助,急急急!!!interesting
相关话题的讨论汇总
话题: known话题: biginteger话题: return话题: static