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


相关推荐

  • fsync

    fsync转载:https://www.jb51.net/article/101062.htm脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数…

    2022年5月31日
    72
  • 网线RJ45接口排线示意图(做网线备用)「建议收藏」

    网线RJ45接口排线示意图(做网线备用)「建议收藏」网线RJ45接口排线示意图(做网线备用)RJ45有两种绕线方式,T-568A和T-568B。注意:绝大多数设备用的都是T-568B!!!请参照T-568B的线序!!!我的热门文章推荐多路视频直播用在线云导播切换的效果测试 如何把视频转换生成二维码,扫码直接播放? 有哪些网站上传视频是不会插入广告的? 怎么把视频生成二维码?微信扫二维码就可以观看?不要广告的 常用照片尺寸对照表,照片大小看这个表就对了 视频直播推流攻略(整理的各大平台推流界面) html5视频倍.

    2022年9月17日
    7
  • win ce 编译运行自定义控件提示:Result code: 0x80040154 错误解决

    win ce 编译运行自定义控件提示:Result code: 0x80040154 错误解决

    2021年8月8日
    53
  • 移动端左滑右滑组件

    移动端左滑右滑组件

    2021年6月29日
    95
  • 服务器安全-使用ipset 和iptables禁止国外IP访问[通俗易懂]

    服务器安全-使用ipset 和iptables禁止国外IP访问[通俗易懂]服务器遭受ddos攻击,发现发部分IP来自国外……IPSET安装yuminstallipset//安装ipsetipsetcreatechinahash:nethashsize10000maxelem1000000//创建地址表ipsetaddchina172.18.0.0/16ipsetlistchina获取国内IP地址段并导入viipset_china.sh#!/bin/bashrm-rfcn.zonewget..

    2022年10月7日
    1
  • ucosii操作系统详解_curdate函数

    ucosii操作系统详解_curdate函数UCOSII的用法OSTaskCreate()函数原型:INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)调用者:任务或者是初始化代码。作用:建立一个新任务,任务的建立可以在多个任务环境启动之前,也可以在正在运行的任务中建立,中断处理程序中不能建立任务,一个任务必须为无限循环结构,且不能有…

    2025年9月8日
    4

发表回复

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

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