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 相关文章推荐
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
layui文件上传实现代码
May 20 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
Vue中的组件及路由使用实例代码详解
May 22 Javascript
vue实现循环滚动列表
Jun 30 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 Javascript
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
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
PHP JSON 数据解析代码
2010/05/26 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
JS随机数产生代码分享
2018/02/24 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
js制作提示框插件
2020/12/24 Javascript
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Python优先队列实现方法示例
2017/09/21 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
央视元宵晚会主持串词
2014/03/25 职场文书
学校春季防火方案
2014/06/08 职场文书
2014年城管工作总结
2014/11/20 职场文书
情人节活动总结范文
2015/02/05 职场文书
教学副校长工作总结
2015/08/13 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript