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 相关文章推荐
jQuery1.6 正式版发布并提供下载
May 05 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
基于JQuery实现的Select级联
Jan 27 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
VUE脚手架具体使用方法
May 20 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
jQuery+ajax实现文件上传功能
Dec 22 jQuery
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
Apr 13 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
linux下 C语言对 php 扩展
2008/12/14 PHP
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP使用数组实现队列
2012/02/05 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python中zip()函数用法实例教程
2014/07/31 Python
浅析python的优势和不足之处
2018/11/20 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
HTML文本属性&amp;颜色控制属性的实现
2019/12/17 HTML / CSS
入党积极分子思想汇报范文
2014/01/05 职场文书
担保贷款承诺书
2015/04/30 职场文书
工作态度检讨书范文
2015/05/06 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL