可能重复:
计算任意大数的阶乘,显示所有数字
这个问题可能会在这里被问一千次。我正在通过修改重复我的问题。我想计算一个大数的阶乘(max range of the number=10^6)。通常我们使用一个for循环 from i=1toi=number并且每次将旧值乘以新值。这对小数字很好,但如果我有大数字怎么办?for现在增加了循环的范围。Java 原始数据类型int,long无法处理生成的大量数据。他们只是溢出。虽然我知道BigInteger类,它可以处理这么大的输出,但for循环仍然不适合我。有人可以建议我打勾,任何计算数字阶乘的技巧吗?以下是适用于小数字的简单程序-
public long getFactorial(long number) {
long factorial = 1;
for (long i = 1; i <= number; ++i) {
factorial *= i;
}
return factorial;
}