【实现方法】
1.利用while循环来做,当然for循环也可以。
2.递归
【代码内容】
偷懒,直接用 事件来限制来页面的输入
循环代码:
//第一种方法 while循环
oCount. = 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. = 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> < charset="UTF-8"> < >两种实现阶乘方法</ > <style> #box { width: 100%; height: 200px; border: 1px solid #ccc; text-align: center; } </style> < > window. = function() { var oBox = document.getElementById('box'); var oCount = document.getElementById('count'); // 第一种方法 while循环 // oCount. = 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. = 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; }; } </ > </head> <body> <div id="box"></div> <input type="text" id="num" ="value=value.replace(/[^0-9]/g,'')" ="value=value.replace(/[^0-9]/g,'')" = "value=value.replace(/[^0-9]/g,'')"> <input type="button" id="count" value="计算"> </body> </html>
继续阅读与本文标签相同的文章
-
Mybatis之discriminator(鉴别器)详解
2026-05-18栏目: 教程
-
前端进阶|第十一天 当全局变量,块变量,函数叫了同一个名字。。
2026-05-18栏目: 教程
-
Leetcode 542:01 矩阵 01 Matrix
2026-05-18栏目: 教程
-
LeetCode 733: 图像渲染 flood-fill
2026-05-18栏目: 教程
-
Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情
2026-05-18栏目: 教程
