每日一算法:阶乘

作者: lio_zero | 来源:发表于2021-04-16 20:36 被阅读0次

在数学中,正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,计为 n!。
例如5的阶乘计为 5!,其值为 120:5!= 5 × 4 × 3 × 2 × 1 = 120 。
并定义,1的阶乘1!为1、0的阶乘0!亦为1,其中,0的阶乘表示一个空积。

JavaScript 实现

计算数字的阶乘。

  • 使用递归。
  • 如果 n 小于或等于 1,则返回 1
  • 否则,返回 n 的乘积和 n - 1 的阶乘。
  • 如果 n 是负数,抛出 TypeError
const factorial = n =>
  n < 0
    ? (() => {
        throw new TypeError('Negative numbers are not allowed!')
      })()
    : n <= 1
    ? 1
    : n * factorial(n - 1)

factorial(6) // 720

此示例来自 30 seconds of code 的 factorial

Leetcode 关于阶乘的题目

相关文章

  • 每日一算法:阶乘

    在数学中,正整数的阶乘[https://zh.wikipedia.org/wiki/%E9%98%B6%E4%B9...

  • Java 实现阶乘算法

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

  • C++ 递归算法

    递归算法,尾递归算法求阶乘!

  • 大数阶乘--10000的阶乘实现

    普通的阶乘算法: 在数字比较小的时候,以上阶乘算法还能勉强应对,但当数字大于50时,阶乘结果就达到了65位数之多,...

  • golang学习笔记之-递归算法

    递归算法求5的阶乘

  • 阶乘算法

    如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。 阶乘通常简写成 n! 例如: 代码如下,使用...

  • 求解大数阶乘 【C语言】

    题目 编写一个算法,计算 的阶乘 代码

  • 递归算法---阶乘(一)

    递归算法:就是一种直接或者间接调用自身的算法。实现过程:一般通过函数或者子过程来完成,在函数或子过程的内部,编写代...

  • 结合LeetCode题库分析递归算法(一)

    递归算法:即一个程序反复调用自身的算法。 以一个经典阶乘为例,我们都知道阶乘 直到0!= 1 是我们都知道的,也就...

  • 2、尾部的零

    题目描述 设计一个算法,计算出n阶乘中尾部零的个数 思路 n阶乘能产生尾数0,换言之就是问n阶乘能乘出多少个101...

网友评论

    本文标题:每日一算法:阶乘

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