当前位置: 代码迷 >> J2SE >> 50阶层的算法
  详细解决方案

50阶层的算法

热度:97   发布时间:2016-04-23 20:28:32.0
求一个50阶层的算法
一般的算法,求到二十几的阶层值就会是负数
------解决方案--------------------
应该是长度溢出
------解决方案--------------------
 为什么出现负数,是因为你定义的数据类型长度不够导致的。
java 中 int 长度 2^-128 ~ 2^127

50! = 3.0414093201713 * 10 64

代码如下:

package test;

public class Factorial {

public static void main(String[] args) {
// TODO Auto-generated method stub
double fac = 1;
int count = 50;

for (int i = 1; i <= count; i++) {
fac = fac * i;
}

System.out.println("1!+2!+.... +50!'s factorial is :" + fac);
}
}
------解决方案--------------------

------解决方案--------------------
选错类型了吧,用BigInteger
------解决方案--------------------
BigInteger
  相关解决方案