阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n
计算方法
正整数阶乘指从 1 乘以 2 乘以 3 乘以 4 一直乘到所要求的数。例如所要求的数是 4,则阶乘式是 1×2×3×4,得到的积是 24,24 就是 4 的阶乘。 例如所要求的数是 6,则阶乘式是 1×2×3×……×6,得到的积是 720,720 就是 6 的阶乘。例如所要求的数是 n,则阶乘式是 1×2×3×……×n,设得到的积是 x,x 就是 n 的阶乘。
表示方法
任何大于 1 的自然数n 阶乘表示方法:
n!=1×2×3×...(n-1)n
或
n!=n(n-1)!
二十以内数的阶乘
以下列出 0 至 20 的阶乘:
0!=1,(0 的阶乘是存在的,且定为1)
1!=1,
2!=2,
3!=6,
4!=24,
5!=120,
6!=720,
7!=5040,
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
16!=20922789888000
17!=355687428096000
18!=6402373705728000
19!=121645100408832000
20!=2432902008176640000
JAVA中
public class Main{
final static int MAX=20;// 可以替换 MAX 的值。
public static void main(String[] args)
{
int i=1;
long result=1;
long[] n=new long[MAX];
do{
result*=(i+1);
System.out.println(i+"!="+result);
n[i]=result;
i++;
}while(i<MAX);
n[0]=1;
//阶乘end
}
}
提供另外一种方法:
public static final int fac(int n)
{return (n == 0)? 1 : n * fac(n - 1);
}