JavaScript

超轻量级php框架startmvc

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

更新时间:2020-07-23 20:54:01 作者:startmvc
【实现方法】  1.利用while循环来做,当然for循环也可以。  2.递归【代码内容】   

【实现方法】

  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使用递归和循环实现阶乘的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

js 递归和循环 js 阶乘