【实现方法】
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>
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论