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中==与===操作符的比较
Mar 21 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
Sep 09 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
Apr 23 Javascript
js脚本实现数据去重
Nov 27 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
JS设计模式之数据访问对象模式的实例讲解
Sep 30 Javascript
AngularJS 多指令Scope问题的解决
Oct 25 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 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中删除变量时unset()和null的区别分析
2011/01/27 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
PHP加密解密函数详解
2015/10/28 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
Python端口扫描简单程序
2016/11/10 Python
浅析使用Python操作文件
2017/07/31 Python
python 获取图片分辨率的方法
2019/01/08 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
wxpython绘制音频效果
2019/11/18 Python
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
医学院毕业生自荐信
2013/11/08 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
会计核算科岗位职责
2014/03/19 职场文书
实习指导教师评语
2014/12/30 职场文书
维稳承诺书
2015/01/20 职场文书
2015新学期开学寄语
2015/02/26 职场文书
薪资证明范本
2015/06/19 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL