JavaScript 计算一个数字的阶乘
给定一个正整数n,任务是使用JavaScript代码找出该数字的阶乘。
对于任何正整数’n’,n的阶乘是从1到n的所有值的乘积。在数学中,阶乘n表示为 n! 。0的阶乘是1。
注意: 负数的阶乘未定义,因为只有正数和0被定义为阶乘的域。
示例:
方法1:迭代方法
- 声明一个变量并赋值为需要找到其阶乘的数字。
- 声明一个名为factorial的函数,并将值作为参数。
- 在函数定义中,将变量ans初始化为1。
- 循环范围在[2, n]之间。
- 在每次迭代中,将ans与i的值相乘。
- 返回ans的值。
示例:
输出
由于代码在所有n的值上运行, 时间复杂度: O(n):
由于我们没有为变量分配任何额外的空间,因此 辅助空间: O(1):
方法2:递归方法
- 声明一个变量,其值为要找到的阶乘的数字。
- 声明一个递归函数factorial,以值作为参数。
- 若值为0,则函数返回1,否则返回值-1的函数调用。
- 递归结束后返回的值即为阶乘结果。
示例:
输出
由于代码在所有n的值上运行, 时间复杂度: O(n)
由于每次函数调用都会创建一个堆栈,所以 辅助空间: O(n)