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 相关文章推荐
用cssText批量修改样式
Aug 29 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
微信小程序实现页面跳转传值的方法
Oct 12 Javascript
JavaScript格式化json和xml的方法示例
Jan 22 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 Javascript
Element-ui upload上传文件限制的解决方法
Jan 22 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
javascript Number 与 Math对象的介绍
Nov 17 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python日志模块logging简介
2015/04/13 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
python得到单词模式的示例
2018/10/15 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python设置环境变量的原因和方法
2019/06/24 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
django中间键重定向实例方法
2019/11/10 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python异常处理try except过程解析
2020/02/03 Python
python列表的逆序遍历实现
2020/04/20 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
小学毕业感言150字
2014/02/05 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技