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

【实现方法】

  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使用递归和循环实现阶乘的实例代码 的全部内容, 来源链接: utcz.com/z/352049.html

回到顶部