Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中对数字进行因子化_Javascript_Factorial - Fatal编程技术网

在JavaScript中对数字进行因子化

在JavaScript中对数字进行因子化,javascript,factorial,Javascript,Factorial,我目前正在参加一个免费代码营的课程,它要求我返回任意给定数字的阶乘。然而,我有点被这个问题困住了(请原谅,数学不是我的强项,哈哈)。它的问题是: 如果整数用字母n表示,则阶乘是所有小于或等于n的正整数的乘积。 阶乘通常用简写符号n表示!例如:5!=1*2*3*4*5=120f 以下是起始代码: function factorialize(num) { return num; } factorialize(5); 我不想直接回答这个问题,但我真的想知道如何开始。提前谢谢你的帮助 注意:此响应解

我目前正在参加一个免费代码营的课程,它要求我返回任意给定数字的阶乘。然而,我有点被这个问题困住了(请原谅,数学不是我的强项,哈哈)。它的问题是:

如果整数用字母n表示,则阶乘是所有小于或等于n的正整数的乘积。 阶乘通常用简写符号n表示!例如:5!=1*2*3*4*5=120f

以下是起始代码:

function factorialize(num) {
return num;
}

factorialize(5);

我不想直接回答这个问题,但我真的想知道如何开始。提前谢谢你的帮助

注意:此响应解释了要使用哪种类型的循环,并提示如何格式化循环以获得5的阶乘,从而在使用num之前获得基本格式

以5为例!=1*2*3*4*5=120,您可以看到有一种数字模式,从1开始,从5结束,然后递增1。您还可以看到,对于1到5之间的每个数字,您需要一次又一次地乘以下一个数字,才能得到阶乘

for循环用于将特定代码块重复已知次数。在本例中,您知道次数是5(也称为1,2,3,4,5)。具体的代码块是您需要根据您试图得到的答案(在本例中是5!=1*2*3*4*5=120)计算出来的

对于循环提示: 在考虑如何写入for循环的条件时: 从1开始递增,从5结束递增,然后递增1(1,2,3,4,5)

在编写将作用于每个数字的代码块时,请考虑每个数字需要具有的关系,以便您的代码基本上做到这一点: 1*2*3*4*5

函数因子化(num){
function factorialize(num) {
    var myNum = 1;
    for (i=1; i<=num;i++){
        myNum = myNum * i;
    }
    return myNum;
}
factorialize(5);
var-myNum=1;
对于(i=1;i有两种方法,第一种是在循环中,第二种是在递归函数中

循环版本如下所示:

function factorialize(num) {

  for(var answer=1;num>0;num--){
    answer*=num;
  }

  return answer;
}
递归的一个是这样的

function factorialize(num) {

  if(num===0){
    return 1;
  }
  else{
    return num*factorialize(num-1);
  }
}

这两个函数都可以处理所有的正整数。

很简单。你需要一个从1到函数给定的数字的循环。然后将这些数字乘以并返回。考虑递归,如果num>1,则返回num*factorialize(num-1),否则返回1从
函数fac(n){return n<2?1:n*fac(n-1)};