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 相关文章推荐
文字不间断滚动(上下左右)实例代码
Apr 21 Javascript
JQuery中serialize()用法实例分析
Feb 06 Javascript
JavaScript实现添加及删除事件的方法小结
Aug 04 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
vue.js语法及常用指令
Oct 29 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
May 13 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
用JS实现选项卡
Mar 23 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 Javascript
javascript实现放大镜功能
Dec 09 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
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
JsDom 编程小结
2011/08/09 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
js自定义Tab选项卡效果
2017/06/05 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
koa router 多文件引入的方法示例
2019/05/22 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
整理Python 常用string函数(收藏)
2016/05/30 Python
Python中装饰器学习总结
2018/02/10 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python实现图片插入文字
2019/11/26 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
法人授权委托书样本
2014/09/19 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
检讨书模板
2015/01/29 职场文书
初中教师个人工作总结
2015/02/10 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android