阶乘

作者: 小贱嘎嘎 | 来源:发表于2017-05-25 09:48 被阅读0次

定义

一个正整数的阶乘是指所有小于或等于该正整数的正整数的乘积,记作n!,0的阶乘等于1

Java递归实现

/**
 * 计算数n的阶乘值
 * 
 * @param n
 *            阶乘停止的值
 * @return 阶乘后的结果
 */
public int factorial(int n) {
    if (n == 0) {
        return 1;
    } else if (n < 0) {
        return n * factorial(n + 1);
    } else {
        return n * factorial(n - 1);
    }
}

Java非递归实现

/**
 * 非递归实现阶乘
 * 
 * @param n
 * @return
 */
public int factorialWithoutTraversal(int n) {
    int result = 1;
    if (n == 0) {
        // 如果n等于0直接返回1
        return result;
    }
    int start = n > 0 ? 1 : n;// 如果n大于0的话,阶乘起始值设为1,否则设为n
    int end = n > 0 ? n : -1;// 如果n大于0的话,阶乘终止值设为n,否则设为-1
    for (; start <= end; start++) {
        result = result * start;
    }
    return result;
}

相关文章

  • Java 实现阶乘算法

    Java 实现阶乘算法 阶乘算法如下: 以下列出 0 至 20 的阶乘: 0!=1,(0 的阶乘是存在的) 1!=...

  • 专题:递归与累加阶乘

    递归实现累加和阶乘 累加核心代码: 阶乘的核心代码: 阶乘的非递归实现思路: 阶乘的非递归实现核心代码:

  • Factorial

    使用循环计算阶乘 使用递归计算阶乘

  • 小练习 python3 阶乘运算

    运行结果: 0的阶乘是:= 01 的阶乘是:1= 12 的阶乘是:2X1= 23 的阶乘是:3X2X1= 64 的...

  • python递归求阶乘的方法

    python递归求阶乘的方法 阶乘:例如 5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。 “递归”就...

  • Java大数阶乘

    阶乘定义:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘...

  • 阶乘和Gamma函数可视化

    练习:阶乘和Gamma函数 Γ函数是阶乘在实数上的推广

  • 阶乘

    问题 输入一个正整数 n,输出 n! 的值。其中 n! = 1 x 2 x 3 x … x n,n! < Inte...

  • 阶乘

    定义 一个正整数的阶乘是指所有小于或等于该正整数的正整数的乘积,记作n!,0的阶乘等于1 Java递归实现 Jav...

  • 阶乘

    func getSum(number: Int) -> Int {//求某个数阶乘的结果func getFacto...

网友评论

      本文标题:阶乘

      本文链接:https://www.haomeiwen.com/subject/gpmaxxtx.html