美文网首页
三种方法实现阶乘

三种方法实现阶乘

作者: 本一和他的朋友们 | 来源:发表于2018-10-28 17:45 被阅读9次

三种实现阶乘的方法

方法1

function factorialize(num) {
  // 如果num小于1,则终止
  if (num<0) {
    return -1;
  } else if (num === 0 || num === 1) {
    // num=0或num=1,返回1,这个是定理
    return 1;
  } else{
    return num * factorialize(num-1);
  }
}
factorialize(5);

第一个方法及其简单,else语句中是重复调用函数。但是这种方法好像有内存溢出的风险;

方法2:for循环

function factorialize(num) {
  if (num < 0) {
    return -1;
  } else if (num===0 || num === 1) {
    return 1;
  } else {
    for (var i = num -1; i >= 1; i--) {
      num *= i;
    }
  }
  return num;
}

方法3:while循环

function factorialize(num) {
  var result = num;
  if (num < 1) {
    return -1;
  } else if (num===0 || num===1) {
    return 1;
  } else {
    while (num > 1) {
      num--;
      result *= num;
    }
  }
  return result;
}

相关文章

  • 三种方法实现阶乘

    三种实现阶乘的方法 方法1 第一个方法及其简单,else语句中是重复调用函数。但是这种方法好像有内存溢出的风险; ...

  • 专题:递归与累加阶乘

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

  • Java 实现阶乘算法

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

  • python递归求阶乘的方法

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

  • 关于线程你需要了解的

    java中创建线程的三种方法以及区别: 三种创建线程方法对比 实现Runnable和实现Callable接口的方式...

  • 递归的解析和使用

    一个方法调用自身的方法称之为递归,常用的两种递归就是阶乘和删除目录了(包括流的拷贝,这块不讲) 阶乘 算阶乘需要有...

  • TextView和TextField实现监听或者代理

    目录 1 实现监听的三种方法 2 实现代理的两种方法 实现监听的三种方法- 我们常常都会在项目当中遇到这样的页面,...

  • 酱油04-slider控件

    简单实现slider控件 三种方法实现slider功能

  • JS SICP训练营

    一、过程与它们产生的运算 1.阶乘 在factorial函数中填入代码,实现n的的阶乘。 所谓n的阶乘就是,1 X...

  • 关于阶乘的递归算法

    方法1: 这种方法虽然可以实现阶乘,但是有一个缺点就是耦合度太高,函数名称不可改变。方法2: 对于函数进行解耦,函...

网友评论

      本文标题:三种方法实现阶乘

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