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插件开发 菜单插件开发
May 03 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
AngularJS基础 ng-if 指令用法
Aug 01 Javascript
canvas 绘制圆形时钟
Feb 22 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
npm的lock机制解析
Jun 20 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
Javascript实现秒表计时游戏
May 27 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
PHP新手上路(十三)
2006/10/09 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
五步轻松实现zTree的使用
2017/11/01 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[00:11]战神迅矛
2019/03/06 DOTA
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
DTD的含义以及作用
2014/01/26 面试题
历史学专业个人的自我评价
2013/10/13 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
工地资料员岗位职责
2013/12/31 职场文书
骨干教师培训制度
2014/01/13 职场文书
代理商会议邀请函
2014/01/27 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL