【實(shí)現(xiàn)方法】
1.利用while循環(huán)來做,當(dāng)然for循環(huán)也可以。
2.遞歸
【代碼內(nèi)容】
偷懶,直接用onkeyup事件來限制來頁面的輸入
循環(huán)代碼:
//第一種方法 while循環(huán)        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>兩種實(shí)現(xiàn)階乘方法</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循環(huán)      //  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="計(jì)算"></body></html>下面通過代碼看下javascript 中階乘函數(shù)方法
好久沒有弄了,練習(xí)下:
//  第一, 向上加的階層函數(shù)計(jì)算方法 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); // 第二, 往下減的階層函數(shù)var del = function(n) {    if(n == 1) {       return 1    } else {       return n * del(n - 1);    }  }  var data= del(5);  alert(data);             
新聞熱點(diǎn)
疑難解答
圖片精選