首页 > 语言 > JavaScript > 正文

JavaScript使用递归和循环实现阶乘的实例代码

2024-05-06 15:31:03
字体:
来源:转载
供稿:网友

【实现方法】

  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);             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选