阶乘
阶乘是基斯顿·卡曼(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一直乘到所要求的数。
示方法:
任何大于 1 的自然数n 阶乘表示方法:
![](http://g.hiphotos.baidu.com/baike/s%3D181/sign=deb5925afff2b211e02e8146fb816511/ae51f3deb48f8c545a6331063e292df5e0fe7f63.jpg)
或
![](http://c.hiphotos.baidu.com/baike/s%3D106/sign=9201f682073b5bb5bad724fe00d3d523/203fb80e7bec54e78ce4ed37bd389b504fc26a8b.jpg)
二十以内的数,以下列出 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 中
ublic 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); }