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 相关文章推荐
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
Jan 23 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 Javascript
js的三种继承方式详解
Jan 21 Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
JS前端模块化原理与实现方法详解
Mar 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 无线电
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
css图片自适应大小
2007/11/28 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python3常见函数range()用法详解
2019/12/30 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
综合测评自我鉴定
2013/10/08 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
买卖协议书范本
2014/04/21 职场文书
文明城市标语
2014/06/16 职场文书
pycharm无法安装cv2模块问题
2022/05/20 Python