编写一个js函数用来求n的阶乘

如题所述

function factorial(n){
    return n > 1 ? n * factorial(n-1) : 1;
}
factorial(5);//120

以上函数可以求简单的n的阶乘

由于使用的是原生的乘法,所以计算范围有限

主要使用了递归的方式进行计算,是求阶乘的常用方法之一

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-06
<script type="text/javascript">
n = 1; 

x = 4;阶乘等级

s = 1; //结果

for(i=1;i<=x;i++){
    s = s * i;
}


</script>

本回答被网友采纳
第2个回答  2015-10-07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

function product(array) {
if(array instanceof Array) {
var len = array.length;
var result = len > 0 ? 1 : null;
for(var i = 0; i < len; i++) {
result *= array[i];
}
return result;
}
return null;
}
function factorial(<a href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4mW7-uhc3rj--nHKBuyc10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1DLPHf4nWc4PHDdnjD3rH6znW6" target="_blank" class="baidu-highlight">num</a>) {
var result = <a href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4mW7-uhc3rj--nHKBuyc10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1DLPHf4nWc4PHDdnjD3rH6znW6" target="_blank" class="baidu-highlight">num</a> > 0 ? 1 : 0;
while(<a href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4mW7-uhc3rj--nHKBuyc10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1DLPHf4nWc4PHDdnjD3rH6znW6" target="_blank" class="baidu-highlight">num</a> > 0) {
result *= num;
num--;
}
return result;
}
var result1 = product([1,2,3,4,5]);
var result2 = factorial(5);
第3个回答  2019-07-21
<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title></title>

  <script type="text/javascript">

  window.onload = function(){

   var oBtn = document.getElementById("but");

   var Txt1 = document.getElementById("txt1");

   var Txt2 = document.getElementById("txt2");

   oBtn.onclick = function(){

    n = Txt1.value;

    function factorial(n){

     if(n < 2){

      return 1;

     }

     return n * factorial(n - 1);

    }

    Txt2.value = factorial(n);

   }

  }

  </script>

 </head>

 <body>

  <input type="text" name="" id="txt1" value="" />

  <input type="button" name="" id="but" value="阶乘" />

  <input type="text" name="" id="txt2" value="" />

 </body>

</html>

第4个回答  2019-02-13
比较好懂的
var n=0,
var otpt
function compute(n){
otpt=1
for(i=n;i>0;i--)
{
otpt*=i;
}
retern otpt()
}
相似回答