js实现阶乘算法的三种方法

js实现阶乘算法的三种方法js实现阶乘算法的三种方法//非递归写法functionf(n){if(0===n){return1;}letres=1;for(leti=1;i<=n;++i){res*=i;}returnres;}//递归写法functiong(n…

大家好,又见面了,我是你们的朋友全栈君。

js实现阶乘算法的三种方法

// 非递归写法
function f(n) { 
   
    if (0 === n) { 
   
        return 1;
    }
    let res = 1;
    for (let i = 1; i <= n; ++i) { 
   
        res *= i;
    }
    return res;
}

// 递归写法
function g(n) { 
   
    if (0 === n) { 
   
        return 1;
    }
    return n*g(n-1);
}

// 动态规划写法
let dp = [];
function h(n) { 
   
    if (n < 0 || n !== Math.floor(n)) { 
   
        return undefined;
    }
    if (dp[n]) { 
   
        return dp[n];
    }
    if (0 === n) { 
   
        dp[n] = 1;
        return 1;
    }
    for (let i = dp.length; i <= n; ++i) { 
   
        dp[i] = dp[i-1]*i;
    }
    return dp[n];
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164017.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月24日 上午6:16
下一篇 2022年7月24日 上午6:16


相关推荐

  • android rsa加密工具类,GitHub – Lerist/encrypt: Android 加密解密工具包。「建议收藏」

    android rsa加密工具类,GitHub – Lerist/encrypt: Android 加密解密工具包。「建议收藏」Encrypt(加密工具)字符串,byte[],文件等对象的加密和解密工具集合,包含了多种加密方案。加密类型摘要相关方法简单加密换一种编码格式Base64Util单向加密只能加密,不能解密MD5Util、SHAUtil对称加密使用相同的秘钥加密和解密AESUtil、DESUtil非对称加密分公钥和私钥,一个加密,另一个解密RSAUtil使用方法Base64util方法摘要Stringbase6…

    2022年5月17日
    42
  • TDD与FDD

    TDD与FDDFDD和TDD主要区别就在于采用不同的双工方式,为频分双工(FDD)和时分双工(TDD)是两种不同的双工方式。FDD是在分离的两个对称频率信道上进行接收和发送,用保护频段来分离接收和发送信道。FDD的缺点就是必须采用成对的频率,依靠频率来区分上下行链路,其单方向的资源在时间上是连续的。FDD虽然在支持对称业务时,能充分利用上下行的频谱,但在支持非对称业务时,频谱利用率将大大降低。  …

    2022年6月13日
    40
  • ADO数据库C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter

    ADO数据库C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter用于执行增,删,改的方法,支持存储过程1.ExecuteNonQuery数据库连接字符串:privatereadonlystaticstringconnectionString=ConfigurationManager.ConnectionStrings["MyConnection"].ToString();连接字符串,自满足,请用SqlHelper.con…

    2022年6月20日
    34
  • C# 实现 FFT 正反变换 和 频域滤波

    C# 实现 FFT 正反变换 和 频域滤波

    2021年7月30日
    91
  • 操作系统的定义与基本概念_计算机系统的概念

    操作系统的定义与基本概念_计算机系统的概念1、操作系统的概念及定义1.1操作系统的层次结构从上至下,用户——应用程序——操作系统——裸机(纯硬件)。操作系统OS(OperatingSystem)是指控制和管理整个计算机系统的硬件和软

    2022年8月4日
    7
  • 【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格

    【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!Unity踩坑小知识点学习Unity调用AP..

    2022年7月17日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号