我目前正在参加一门关于自由代码营的课程,它要求我为任何给定的数字返回一个阶乘。然而,我在这个问题上有点困住了(请原谅我,数学不是我的强项,哈哈)。下面是它的要求:
如果整数用字母n表示,则阶乘是所有小于或等于n的正整数的乘积。阶乘通常用简写符号n表示!例如: 5!=1*2*3*4*5=120 F
下面是开始代码:
function factorialize(num) {
return num;
}
factorialize(5);
我不想直接回答这个问题,但我真的想知道如何启动。谢谢您提前提供帮助!
发布于 2015-12-18 01:52:38
有两种方法可以做到这一点。第一个在循环中,第二个在递归函数中。
循环版本是这样的:
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);
}
}
两种方法都适用于所有正整数。
发布于 2015-09-03 10:27:48
function factorialize(num) {
var myNum = 1;
for (i=1; i<=num;i++){
myNum = myNum * i;
}
return myNum;
}
factorialize(5);
首先,我创建了一个var来保存我们的答案(myNum)。
然后,我创建了一个循环,从1开始,直到(包括)我们正在进行阶乘的数字的值……当循环运行时,我们将myNum乘以i的值,将新值保存为myNum,因此它将被乘以循环中的下一个数字……
一旦循环完成,我们将使用“返回myNum”返回我们的答案。
发布于 2015-08-23 16:07:58
注意:此响应说明要使用哪种类型的循环,并提示如何格式化循环以获得阶乘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循环提示:当考虑如何编写for循环的条件时:从1开始递增,在5结束增量,然后增加1 ( 1,2,3,4,5)
在编写对每个数字起作用的代码块时,请考虑每个数字所需的关系,因此您的代码实际上是这样做的: 1*2*3*4*5
https://stackoverflow.com/questions/31126315
复制相似问题