阶乘

定义:
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数,并且有0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
任何大于 1 的自然数n 阶乘表示方法
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);
};
 
 
原文地址:https://www.cnblogs.com/php111/p/5017297.html