JavaScript使用递归和循环实现阶乘的实例代码


Posted in Javascript onAugust 28, 2018

【实现方法】

1.利用while循环来做,当然for循环也可以。

2.递归

【代码内容】

偷懒,直接用onkeyup事件来限制来页面的输入

循环代码:

//第一种方法 while循环
        oCount.onclick = function (){
          var oNum = document.getElementById('num').value;
          oNum = Number(oNum);
          if(oNum <= 1){
             oBox.innerHTML = 1;
          }
          var oRes = 1;
          while(oNum){
            oRes *= oNum;
            oNum--;
          }
          oBox.innerHTML = oRes;
        }

递归代码

// 第二种方法  递归
      oCount.onclick = function(){
        var oNum = document.getElementById('num').value;
        oNum = Number(oNum);
        function factorial (num) {
          if (num <= 1) {
            return 1;
          } else {
            return (num * factorial(num-1));
          }
        };
        oRes=factorial(oNum);
        oBox.innerHTML = oRes;
      };

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>两种实现阶乘方法</title>
  <style>
    #box {
      width: 100%;
      height: 200px;
      border: 1px solid #ccc;
      text-align: center;
    }
  </style>
  <script>
    window.onload = function() {
       var oBox = document.getElementById('box');
       var oCount = document.getElementById('count');
      // 第一种方法 while循环
      //  oCount.onclick = function (){
      //     var oNum = document.getElementById('num').value;
      //     oNum = Number(oNum);
      //     if(oNum <= 1){
      //       oBox.innerHTML = 1;
      //     }
      //     var oRes = 1;
      //     while(oNum){
      //       oRes *= oNum;
      //       oNum--;
      //     }
      //     oBox.innerHTML = oRes;
      //   }
    // 第二种方法
      oCount.onclick = function(){
        var oNum = document.getElementById('num').value;
        oNum = Number(oNum);
        function factorial (num) {
          if (num <= 1) {
            return 1;
          } else {
            return (num * factorial(num-1));
          }
        };
        oRes=factorial(oNum);
        oBox.innerHTML = oRes;
      };
    }
  </script>
</head>
<body>
  <div id="box"></div>
  <input type="text" id="num" onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')">
  <input type="button" id="count" value="计算">
</body>
</html>

下面通过代码看下javascript 中阶乘函数方法

好久没有弄了,练习下:

//  第一, 向上加的阶层函数计算方法
 var number = function(n) {
  if(n == 1) {
    return 1
  } else {
    product = 1;
    for(i = 1; i <= n; i++) {
       product *= i;
    }
    return product;
  }
}
var d = number(5);
alert(d);
 // 第二, 往下减的阶层函数
var del = function(n) {
    if(n == 1) {
       return 1
    } else {
       return n * del(n - 1);
    }
  }
  var data= del(5);
  alert(data);

总结

以上所述是小编给大家介绍的JavaScript使用递归和循环实现阶乘的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery列表拖动排列具体实现
Nov 04 Javascript
解析jquery中的ajax缓存问题
Dec 19 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 Javascript
create-react-app开发常用配置教程
Jun 25 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 #Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 #Javascript
vue组件开发之用户无限添加自定义填写表单的方法
Aug 28 #Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 #Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 #Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 #Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 #Javascript
You might like
thinkphp实现图片上传功能分享
2014/03/04 PHP
微信自定义分享php代码分析
2016/11/24 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
python使用urlparse分析网址中域名的方法
2015/04/15 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
详解Django配置优化方法
2019/11/18 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
电子商务应届生求职信
2013/11/16 职场文书
销售经理工作职责范文
2013/12/03 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
民政工作个人总结
2015/02/28 职场文书
党支部综合考察意见
2015/06/01 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python