真党的没有计算阶乘的公式的,也没有简便方法,只是硬算,也可以运用计算机,可以计算到65!,如果你想计算跟大的数,我建议你上百度寻找计算阶乘的软件,听说多大的数都能计算出来.嘿!那个Q币的,怎么了?
还有这个参考:
由于阶乘运算的增长速度特别快(比2^n的增长速度快),对于较小整数的阶乘运算采用简单的递规算法可以实现,但是对于大整数的乘法(比如1000!),则传统的递规算法就失去了作用.
由于本人的水平不高,用下列拙劣的方式实现,请高人多多指教.具体如下:定义一个很长的数组,用数组的每一项表示计算结果的每一位.例如,7!=5040,a[1000],则a[0]=0,a[1]=4,a[2]=0,a[3]=5.
程序源代码:
/**
*计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算5!,那么首先将
*(1) a[0]=1,然后a[0]=a[0]*2,a[0]=2,
*(2) a[0]=a[0]*3,a[0]=6
*(3) a[0]=a[0]*4,a[0]=24,此时a[1]=2,a[0]=4
*/
public class Factorial
{
static int a[] = new int [10000];
static void factorial(int n)
{
for(int i=2; i< a.length; i++)
a[i] = 0; //将数组元素初始化
a[0] = 1; //用数组的一项存放计算结果的位数
a[1] = 1; //将第一项赋值为一
for(int j= 2; j
猜你喜欢
- 1在一个直径是20厘米的圆柱形容器里,放入一个底面半径3里米的圆锥形铁块,全部浸没在水中,这时水面上升
- 2翻译:他一回家就睡了 (用no sooner than )来翻译
- 3证明三个连续的正整数偶数奇数之和均能被3整除.若三个连续的偶数之和是42,则这三个数的最小公倍数是多少
- 4若 (m+n)乘a的平方乘b的n+1次方 是关于a、b的五次单项式,求m,n应满足的条件
- 5已知:三角形ABC中,角C=90度,角A=30度,AB=8cm,求以AC为边的正方形的面积?
- 6在相同温度时,100mL0.01mol/L的醋酸溶液与10mL0.1mol/L的醋酸溶液相比较,下列数值前者大于后者的是( )
- 7要灌篮高手《直到世界的尽头》的翻译.正确的翻译.
- 890个分子为1的分数从二分之一到九十一分之一当中挑选9个加上正负号使他们的和等于-1,
- 9闻官军收河南河北表达了诗人怎么样的心情?
- 10英语翻译论文摘要.