Java中n!的算法?怎么算? 算法java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这段代码是对n!求值后,并且进行缓存了,如果需要很频繁的取n!的值,则这个写法很不错。如果你第一次需要计算10!,计算好之后,将1-10的阶乘都存放在List中,下次如果是取10以下的数字的阶乘,则直接取,如果大于10,则从10!重新开始计算,并继续缓存在List中。如果你只是为了计算一次,则大可不必写这么复杂,直接一个循环相乘就完事了。当然如果数字比较大,用BigInteger是有必要的。 你把这个问题分成两个部分1)首先先不使用BigInteger,就用基本数据类型int或者long,自己先试着写一个小程序计算阶乘做到能运行即可有问题的话,自己试着调试一下,实在解决不了的时候,把完整的代码和运行结果贴上来2)1的程序搞定后,找本Java书,看看BigInteger相关的说明以及示例原来的程序就能秒懂了 楼上很牛逼的样子,但是我只知道楼主只是想了解下 n! 的算法,不说了,上代码,递归算法:public static int test(int n){ if(n==1){ return 1; }else{ return n*test(n-1); } } 这句话什么意思? swing中如何让jtextarea得到另一个线程中不断更新的值? 关于JACOB响应OCX组件中的事件 多线程+批处理的问题 下载网页到指定文件夹。。。。怎样实现啊。。。。? 求救!!!struts的datasource的问题,弄了一天了 xml高手进。树托拽问题 怎么样获得一个表单里列的数值 哪里有JBuilder 7下载??(含注册码的)(请进) 一定给分!!!applet的问题 java string toCharArray问题 JavaWeb前的准备--Java基础增强
如果你第一次需要计算10!,计算好之后,将1-10的阶乘都存放在List中,下次如果是取10以下的数字的阶乘,则直接取,如果大于10,则从10!重新开始计算,并继续缓存在List中。如果你只是为了计算一次,则大可不必写这么复杂,直接一个循环相乘就完事了。
当然如果数字比较大,用BigInteger是有必要的。
做到能运行即可
有问题的话,自己试着调试一下,实在解决不了的时候,把完整的代码和运行结果贴上来2)1的程序搞定后,找本Java书,看看BigInteger相关的说明以及示例
原来的程序就能秒懂了
if(n==1){
return 1;
}else{
return n*test(n-1);
}
}