站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题我要计算10W的阶乘,怎么办?

我要计算10W的阶乘,怎么办?

摘要: 我要计算10W的阶乘,怎么办?


我要计算10W的阶乘,怎么办?


用BigInteger类型


递归或循环


搜索一下下载,几年前有个朋友做过一个计算器。我替你找了
http://down.csdn.net/ycx/C/7960.html


这个哥们真厉害,10w! 结果转成文本是508K,俺的P3 1.13G 2.8s多就算出来了


BigInteger循环慢慢的算


他那程序我没用啊,我要java的,而且那么长


1.2里面有c源码,改java的就是了


BigInteger不过我怀疑这么大的数字会不会出现计算机溢出


BigInteger result = new BigInteger(-#34;1-#34;);
for (int i = 1; i -#60;= 100000; i++) {
result = result.multiply(new BigInteger(String.valueOf(i)));
}
System.out.println(result);
不会溢出的


不过这么算很慢,要3、4分钟


think in java 就有这种例子,找找


我以前用C算过大的。当时用的是数组来模拟超大整数。
一位一位的算出来。可能有点慢。 BigInteger 肯定会益出的


import java.io.*;
import java.math.*;
public class jcc
{
public static void main(String args[])
{
BigDecimal sum = new BigDecimal(1.0);
for(int i = 1; i -#60;= 10000; i++)
{
sum =sum.multiply(new BigDecimal(i));
}
sum=sum.divide(sum);
System.out.println(sum);
}
}
找了一个,效果还不错
可是如果1W


如果1W的阶乘除以1W的阶乘就很慢了啊,和死掉一样了啊


10W的阶乘,没有几分钟算不出来。有人说2。8S算出来,不太现实。


刚才用XP自带的计算器算了一下,双核1.66 算了大约1分钟吧,中间停了两次,结果是2.8242294079603478742934215780245 e+456573


2.8s是实际运行结果,下载地址前面有,其中还有老一点版本的源码,可以试试。我很佩服这个作者


mark


BigInteger就是很慢!


↑返回目录
前一篇: java的GUI,想让它达到windows的效果
后一篇: *_* 顺利换公司 散100分