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

三种方法实现阶乘

作者: 本一和他的朋友们 | 来源:发表于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;
    }
    

    相关文章

      网友评论

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

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