将乘积的每一位数字都存放在数组中,这样的话一个长度为1000的数组可以存放任何一个1000位以内的数字。
假设数组为uint[] array = new uint[10000],因为1! = 1,所以首先置a[0] = 1,分别乘以2、3,得到3! = 6,此时仍只需要一个元素a[0];然后乘以4得到24,我们把个位数4放在a[0],十位数2放在a[1],这样存放结果就需要两个元素;乘以5的时候,我们可以这样进行:用5与各元素由低到高逐一相乘,先计算个位数(a[0])4 × 5,结果为20,这样将a[0]置为0,注意要将2进到十位数,然后计算原来的十位数(a[1])2 × 5,结果为10加上刚才进的2 为12,这样十位数是2,而1则进到百位,这样就得到5! = 120;以此类推……
public class MyFac {
private static final int N = 100;
public static void main(String[] args) {
MyInts ints = new MyInts(1);
for (int i = 1; i digits = new ArrayList<integer>();
int temp;
MyInts(int value) {
digits.add(value);
}
public void multiply(int value) {
int more = 0;
for (int i = 0; i = 0; i--)
sb.append(digits.get(i));
return sb.toString();
}
}
</integer>
分享到:
相关推荐
C++ 阶乘算法实现代码,用C++编写的简单阶乘计算程序。
C语言实现N的阶乘的算法
100阶乘算法 一般计算的时候无法用确切数据类型
用汇编实现的大数阶乘算法,这个算法可以实现任意大的两个数相乘
实现阶乘的一般算法,输入数字,计算多秒,算出结果,摘抄大神整理而已,完整源代码,不过比较简单。
Matlab中实现阶乘算法的几种途径.txt
阶乘算法 阶乘问题 C# 小程序 这个是我用C#写的一个校程序,阶乘问题, 是以前学编程时写的,希望代码对大家有所帮助!
一份阶乘计算的实现代码。有清楚的注释。有兴趣的可以交流一下。
用java实现的大数阶乘的算法,理论上来说还有很多可以更新改进的地方。java自己的BigInteger0.031秒就完成了,本程序2.81秒完成。
阶乘的结果,每一位都保存在数组的一位中,一般的结成算法,不可能算到几百的阶乘,但 此算法可以实现, 唯一的限制只是 数组的大小,即如果你算出阶乘的结果为九百位,那么 数组的大小只需901位即可(第一位不存...
本程序用VB实现阶乘算法,可以清晰的看成算法的过程
数据结构链表的经典算法,实现大数阶乘,非要我写那么多,没办法
基于FPGA的零误差大数阶乘算法的设计与实现.pdf
运用C++的链表(list)模板为数据结构的阶乘的实现,算法是基于小学的乘法进位,有详细的注释和一附图,帮助大家理解。
小数的阶乘比较好做,但是阶乘的数量变化非常快,很快会溢出,这里采用一种变通的方法,可以实现相当大的数的阶乘,如果在这个基础上进一步扩展,能进行更大的阶乘算法。
大数阶乘 算法 源代码 程序 支持大于100000的阶乘
用C语言编写的关于阶乘的算法,这只是很简单的一个算法,没有完善
简单实用,大家可以用来参考,里边包含了阶乘的算法和指数的算法
Java编码规范可以有效提高代码可读性。逻辑清晰+符合规范 高效阶乘算法
大数阶乘的C++算法实现,里面有三个,除了数据结构不一样外。算法的思想还是一样的。很不错的呦