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