JavaScript 计算一个数字的阶乘

JavaScript 计算一个数字的阶乘

给定一个正整数n,任务是使用JavaScript代码找出该数字的阶乘。

对于任何正整数’n’,n的阶乘是从1到n的所有值的乘积。在数学中,阶乘n表示为 n! 。0的阶乘是1。

注意: 负数的阶乘未定义,因为只有正数和0被定义为阶乘的域。

JavaScript 计算一个数字的阶乘

示例:

Input : 4
Output : 24

Input : 5
Output : 120
JavaScript

方法1:迭代方法

  • 声明一个变量并赋值为需要找到其阶乘的数字。
  • 声明一个名为factorial的函数,并将值作为参数。
  • 在函数定义中,将变量ans初始化为1。
  • 循环范围在[2, n]之间。
  • 在每次迭代中,将ans与i的值相乘。
  • 返回ans的值。

示例:

let n = 5;  
  
function factorial(n) {  
    let ans = 1;  
      
    if(n === 0) 
        return 1; 
    for (let i = 2; i <= n; i++)  
        ans = ans * i;  
    return ans;  
} 
  
console.log(factorial(n));
JavaScript

输出

120
JavaScript

由于代码在所有n的值上运行, 时间复杂度: O(n):

由于我们没有为变量分配任何额外的空间,因此 辅助空间: O(1):

方法2:递归方法

  • 声明一个变量,其值为要找到的阶乘的数字。
  • 声明一个递归函数factorial,以值作为参数。
  • 若值为0,则函数返回1,否则返回值-1的函数调用。
  • 递归结束后返回的值即为阶乘结果。

示例:

let n = 5; 
function factorial(n) {  
    if (n === 0) {  
        return 1;  
    }  
    else {  
        return n * factorial( n - 1 );  
    }  
}  
  
console.log(factorial(n));
JavaScript

输出

120
JavaScript

由于代码在所有n的值上运行, 时间复杂度: O(n)

由于每次函数调用都会创建一个堆栈,所以 辅助空间: O(n)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册