利用BigInteger类计算 ,要求正确的输出计算结果 那不对呢?怎么改呢?

Code-Marker 2014-04-04 05:15:59


import java.math.*;
public class BigFactorial {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger result = BigInteger.valueOf(1);
for(int i = 0 ;i <=100;i++){
result =factorial(i) ;
}
System.out.println("100! =" + result);
}
public static BigInteger factorial(long i){
BigInteger value = null;
if(i == 0){
value = BigInteger.valueOf(i) ;
}else{
value = value.multiply(value) ;
}
return value;
}

}
...全文
164 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灯光环 2014-04-04
  • 打赏
  • 举报
回复
	BigInteger value = null;
	if(i == 0){
		value = BigInteger.valueOf(i)               ;
	}else{
		value = value.multiply(value)  ;
	}
你第5行,Null pointer access: The variable value can only be null at this location value是null,你用null调用multiply方法,必须报空指针异常啊。
townsin 2014-04-04
  • 打赏
  • 举报
回复
当然不对了,value 属于局域变量,把它声明成静态的就好了 static BigInteger value = null;

62,620

社区成员

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

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