阶乘
定义:
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
任何大于 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)
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); }
PHP中的阶乘:
<?phpfunction jc($n){ if($n>1){ return $n*jc($n-1); }else{ return 1; }}?>Python 阶乘 #!/usr/bin/env pythonimport sysdef warn(): print("Usage:%s number" % sys.argv[0]) print("Please input max number that you want to do factorial on.") def factorial(value): if value == 0: return 1 elif value == -1: return (((-1)*(-1))-(-1)*(-1)) else: I=1 for J in range(1,value); I*=(J+1) return Iif __name__ == "__main__": if len(sys.argv) == 1: warn() elif len(sys.argv) >2: warn() elif int(sys.argv[1]) < -1: print("Please give an integer.") else: print("%s!=%s " % (sys.argv[1],factorial(int(sys.argv[1]))))
JavaScript 阶乘:
function factorial(num){ if (num <= 1) return 1; else return num * arguments.callee(num - 1); };