Javascript中使用while循环的数字阶乘
我需要帮助创建代码来查找数字的阶乘。任务是Javascript中使用while循环的数字阶乘,javascript,Javascript,我需要帮助创建代码来查找数字的阶乘。任务是 创建一个变量来存储答案,并将其初始化为1 创建一个循环,在给定的值、事实 检查事实是一还是零 将事实与答案变量相乘 在循环结束时,减少事实 使用console.log打印答案 伪代码是 while(factorial) if factorial == 0 or factorial == 1 break result => result * factorial factorial => factorial - 1 我
while(factorial)
if factorial == 0 or factorial == 1
break
result => result * factorial
factorial => factorial - 1
我下面的代码不完整,因为我被伪代码弄糊涂了
function nth_fact(nth){
var a = 1
while(nth_fact)
if (nth_fact == 0 || nth_fact == 1){
break;
result => result * nth_fact
nth_fact => nth - 1
console.log()
}
}
首先,让我们检查出了什么问题:
var a = 1
什么是a
?这显然不是变量的好名字。也许可以将其命名为结果
?这同样适用于nth
,应命名为factorial
和nth\u fact
而应命名为factoriaze
或其他。您还应始终使用
以结束语句
while(nth_fact)
由于while循环包含多个语句(ifif
和两个赋值),因此需要在条件之后使用{
在此处打开一个块。n\u事实
指的是函数,您更希望在此处采用阶乘
if (nth_fact == 0 || nth_fact == 1){
break;
现在为if打开一个block语句,但从未关闭它。因此,在中断后需要另一个}
result => result * nth_fact
nth_fact => nth - 1
console.log()
=>
是箭头函数表达式,但您需要赋值运算符=
。您还需要将某些内容传递到console.log,例如console.log(结果)
总而言之:
function factorize(factorial){
var result = 1;
while(factorial){
if (factorial == 0 || factorial == 1){
break;
}
// ?
factorial = factorial - 1;
console.log(result);
}
return result;
}
这个伪代码确实令人困惑,因为它所称的阶乘实际上不是阶乘——它是当前值,结果(实际上是我们正在寻找的阶乘)乘以当前值。另外,
if
是多余的,因为while
已经检查了相同的条件。所以正确的伪代码应该是
currentValue = argument
factorial = 1
while (currentValue > 1)
factorial = factorial * currentValue
currentValue = currentValue - 1
// now, 'factorial' is the factorial of the 'argument'
一旦你解决了这个问题,这里有一个奖金分配:
- 创建一个函数
,该函数创建一个从范围(a,b)
到a
的数字数组。例如,b
范围(5,8)=>[5,6,7,8]
- 创建一个函数
,将数组元素彼此相乘。例如,product(array)
product([2,3,7])=>42
- 使用
和product
range
- 您使用了正确的方法。只是语法错了。这是:
function nth_fact(nth){
var result = 1 ;
while(nth){
if ((nth) == 0 || (nth) == 1)
break ;
result = result * nth;
nth = nth - 1
}
console.log(result);
return result;
}
函数阶乘(num){
var结果=1
while(num){
如果((num)==0 | |(num)==1){
打破
}否则{
结果=结果*num;
num=num-1;
}
}
return`val}的阶乘为${result}`
}
让val=prompt(“请输入数字:”,“0”);
var x=parseInt(val);
log(阶乘(x))
n\u事实
是一个函数,假设n
=>
是一个箭头函数,你想让助理操作员=
在你的伪代码中做什么?你真的认为你能帮助OP吗??