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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql定义变量的语法是什么_sql 定义变量

    sql定义变量的语法是什么_sql 定义变量有的时候在查询更新数据库的时候,需要多条语句的查询,因此需要多次修改declare可以满足多次执行,但数据只修改一次。declare @local_variabledata_typeDECLARE:定义变量,变量第一个字母是“@”声明时需要指定变量的类型,可以使用set和select对变量进行赋值,在sql语句中就可以使用@local

    2022年8月20日
    10
  • java编译原理

    java编译原理4.Java编译原理1.javac是什么?(1)javac是一种编译器,能够将一种语言规范转换成另一种用语言规范,通常编译器是将便于人们理解的语言规范成机器容易理解的语言规范。(2)javac的任务就是将java源代码语言转换成jvm能够识别的语言,然后jvm将jvm语言再转化成当前机器能够识别的语言(这样使得对开发者屏蔽与机器相关的细节,并且使得语言的执行与平台无关)2.javac编译器的基本结…

    2022年5月9日
    34
  • oracle触发器实例

    oracle触发器实例最近有一个需求,一个数据库的表在插入和删除的时候另外一个数据库中的表也做相应的操作。我的想法是1.首先两个数据库可以连接,通过dblink可以解决。2.建立插入和删除才能触发的触发器。直接上代码createorreplacetriggersynch_useridafterinsertordeleteoneosoperatorFOREACHROW–每一行触发一次…

    2022年7月27日
    2
  • 分子模拟软件amber_分子模拟软件Discovery Studio教程(十):构建基于受体-配体复合物药效团模型…

    分子模拟软件amber_分子模拟软件Discovery Studio教程(十):构建基于受体-配体复合物药效团模型…DiscoveryStudio™(简称DS)是专业的生命科学分子模拟软件,DS目前的主要功能包括:蛋白质的表征(包括蛋白-蛋白相互作用)、同源建模、分子力学计算和分子动力学模拟、基于结构药物设计工具(包括配体-蛋白质相互作用、全新药物设计和分子对接)、基于小分子的药物设计工具(包括定量构效关系、药效团、数据库筛选、ADMET)和组合库的设计与分析等。本章节利刃君为大家带来了使用Discover…

    2022年5月26日
    38
  • 数据库泄密 事件_数据库的安全性

    数据库泄密 事件_数据库的安全性知道CSDN用户数据库泄露这件事情是在12月21日晚上八九点的时候,那时候正在整理第二天报告要用到的思维导图,大奎告诉我说CSDN的用户密码都被泄露了,刚开始还不相信,不过当我从网上下载CSDN数据库文件,并看到自己的账户和密码时,我信了,并且心惊了一下,本来想着对自己的密码立刻进行修改,但网站采取了紧急措施,关闭了相应的功能,或许是为了防止别人恶意修改吧.       此次事件在互联网上

    2022年9月19日
    0
  • 数据挖掘算法与现实生活中的应用案例[通俗易懂]

    数据挖掘算法与现实生活中的应用案例[通俗易懂]如何分辨出垃圾邮件”、“如何判断一笔交易是否属于欺诈”、“如何判断红酒的品质和档次”、“扫描王是如何做到文字识别的”、“如何判断佚名的著作是否出自某位名家之手”、“如何判断一个细胞是否属于肿瘤细胞”等等,这些问题似乎都很专业,都不太好回答。但是,如果了解一点点数据挖掘的知识,你,或许会有柳暗花明的感觉。本文,主要想简单介绍下数据挖掘中的算法,以及它包含的类型。然后,通过现实中触手可及的、活生生的案例

    2022年6月19日
    91

发表回复

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

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