阶乘是基斯顿·卡曼(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);
}

posted on 2015-12-03 21:40  halooomo  阅读(894)  评论(0编辑  收藏  举报