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与框架页的操作代码
Jan 17 Javascript
Javascript 命名空间模式
Nov 01 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
Aug 10 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
node.js中的fs.rmdirSync方法使用说明
Dec 16 Javascript
Angular实现form自动布局
Jan 28 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 Javascript
Vue中android4.4不兼容问题的解决方法
Sep 04 Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 Javascript
利用vue3+ts实现管理后台(增删改查)
Oct 30 Javascript
微信小程序实现多行文字滚动
Nov 18 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
Vue表单实例代码
2016/09/05 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python TKinter获取文本框内容的方法
2018/10/11 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
PHP中如何创建和修改数组
2012/05/02 面试题
实习求职信
2013/12/01 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
解析MySQL索引的作用
2022/03/03 MySQL