JAVA学习(递归)

一、阶乘

阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。一个正整数的阶乘factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

二、例子

/**
 * 递归学习测试
 * 因为递归运算是比较消耗时间的,加入一个时间计算功能;
 */

public class TestFactorial {
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis(); //获取开始时间
        long result =factorial(9);
        long endTime = System.currentTimeMillis(); //获取结束时间
        long time=endTime-startTime;
        System.out.println(result);
        System.out.printf("消耗时间:"+time+"毫秒");
    }

    // 阶乘
    public static long factorial(int n){
        if (n==1){
            return 1;
        }else {
            return n*factorial(n-1);
        }
    }
}

你可能感兴趣的:(JAVA,学习)