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 本地预览的简单实现方法
Feb 18 Javascript
javascript匿名函数实例分析
Nov 18 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
Bootstrap使用基础教程详解
Sep 05 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
总结几道关于Node.js的面试问题
Jan 11 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 Javascript
JS异步宏队列微队列原理详解
Sep 09 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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多例模式介绍
2013/06/24 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php返回json数据函数实例
2014/10/09 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
JavaScript事件列表解说
2006/12/22 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
少先队学雷锋活动月总结
2014/03/09 职场文书
路政管理求职信
2014/06/18 职场文书
食品药品安全责任书
2015/05/11 职场文书
公司晚会主持词
2019/04/17 职场文书
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js