Javascript 因式分解一个数
我正在学习freecodecamp课程,这是创建一个Javascript 因式分解一个数,javascript,math,factorial,Javascript,Math,Factorial,我正在学习freecodecamp课程,这是创建一个因式分解函数的练习之一,我知道有几种方法可以实现,只是不确定这一个会返回什么5 function factorialize(num) { var myMax = num; var myCounter = 1; var myTotal = 0; for (i = 0; i>= myMax; i++) { num = myCounter * (myCounter + 1); m
因式分解
函数的练习之一,我知道有几种方法可以实现,只是不确定这一个会返回什么5
function factorialize(num) {
var myMax = num;
var myCounter = 1;
var myTotal = 0;
for (i = 0; i>= myMax; i++) {
num = myCounter * (myCounter + 1);
myCounter++;
}
return num;
}
factorialize(5);
这是问题的递归解决方案:
function factorialize(num) {
if(num <= 1) {
return num
} else {
return num * factorialize(num-1)
}
}
factorialize(5)
函数因式分解(num){
如果(num这是问题的递归解决方案:
function factorialize(num) {
if(num <= 1) {
return num
} else {
return num * factorialize(num-1)
}
}
factorialize(5)
函数因式分解(num){
如果(Num 也许你考虑另一种方法。< /P>
此解决方案的特点是提供了一个非常简单的方法,以显示递归样式和隐式类型转换可以得到什么:
function f(n) { return +!~-n || n * f(n - 1); }
- +换算成数字
- !不
- ~z~不客气
- -否定的
函数f(n){return+!~-n | | n*f(n-1)}
var i;
对于(i=1;i<20;i++){
控制台日志(f(i));
}
<代码>。作为控制台包装器{最大高度:100%!重要;顶部:0;} < /代码> 也许您考虑另一种方法。
此解决方案的特点是提供了一个非常简单的方法,以显示递归样式和隐式类型转换可以得到什么:
function f(n) { return +!~-n || n * f(n - 1); }
- +换算成数字
- !不
- ~z~不客气
- -否定的
函数f(n){return+!~-n | | n*f(n-1)}
var i;
对于(i=1;i<20;i++){
控制台日志(f(i));
}
.as控制台包装{max height:100%!important;top:0;}
要回答您的问题,为什么函数返回5:
您的函数永远不会到达for循环的内部部分,因为您测试i是否大于myMax而不是小于。
因此,您只需返回输入参数,即5
但是循环不计算num的阶乘,它只将(num+1)乘以(num+2);回答您的问题,为什么您的函数返回5:
您的函数永远不会到达for循环的内部部分,因为您测试i是否大于myMax而不是小于。
因此,您只需返回输入参数,即5
但是循环不计算num的阶乘,它只将(num+1)乘以(num+2);这里有另一种解决这个问题的方法,我知道它既不是最短的,也不是最简单的,但它仍然是一种有效的方法
function factorialiaze(num){
var myArr = []; //declaring an array.
if(num === 0 || num === 1){
return 1;
}
if (num < 0){ //for negative numbers.
return "N/A";
}
for (var i = 1; i <= num; i++){ // creating an array.
myArr.push(i);
}
// Reducing myArr to a single value via .reduce:
num = myArr.reduce(function(a,b){
return a * b;
});
return num;
}
factorialiaze(5);
函数factorialiaze(num){
var myArr=[];//声明数组。
如果(num==0 | | num==1){
返回1;
}
如果(num<0){//表示负数。
返回“不适用”;
}
对于(var i=1;i,这里有另一种解决这一挑战的方法,我知道它既不是最短的,也不是最简单的,但它仍然是一种有效的方法
function factorialiaze(num){
var myArr = []; //declaring an array.
if(num === 0 || num === 1){
return 1;
}
if (num < 0){ //for negative numbers.
return "N/A";
}
for (var i = 1; i <= num; i++){ // creating an array.
myArr.push(i);
}
// Reducing myArr to a single value via .reduce:
num = myArr.reduce(function(a,b){
return a * b;
});
return num;
}
factorialiaze(5);
函数factorialiaze(num){
var myArr=[];//声明数组。
如果(num==0 | | num==1){
返回1;
}
如果(num<0){//表示负数。
返回“不适用”;
}
对于(var i=1;i请尝试此函数
const factorialize = (num) => num === 0 ? 1 : num * factorialize(num-1)
像这样使用它:
factorialize(5) // returns 120
试试这个功能
const factorialize = (num) => num === 0 ? 1 : num * factorialize(num-1)
像这样使用它:
factorialize(5) // returns 120
试试这个:
function factorialize(num) {
var value = 1;
if(num === 1 || num ===0) {
return value;
} else {
for(var i = 1; i<num; i++) {
value *= i;
}
return num * value;
}
}
factorialize(5);
函数因式分解(num){
var值=1;
如果(num==1 | | num==0){
返回值;
}否则{
对于(var i=1;i尝试以下方法:
function factorialize(num) {
var value = 1;
if(num === 1 || num ===0) {
return value;
} else {
for(var i = 1; i<num; i++) {
value *= i;
}
return num * value;
}
}
factorialize(5);
函数因式分解(num){
var值=1;
如果(num==1 | | num==0){
返回值;
}否则{
对于(var i=1;i我的解决方案符合
函数分解器(int){
如果(int我的解决方案符合
函数分解器(int){
if(int//我的解决方案
const factorialize=num=>{
设newNum=1;
for(设i=1;i//我的解决方案
const factorialize=num=>{
设newNum=1;
对于(让i=1;我希望您完成此挑战。否则,codecamp;)的意义是什么我知道,我找到了另一种方法,只是它困扰着我这一个是不工作的,即使数学得到的数字是正确的,我的问题是returnOne提示尝试递归代码变得很好。最好的方法是阶乘!!我们希望你完成这个挑战。否则codecamp;)我知道,我找到了另一种方法,只是它困扰着我这一个不起作用,即使得到数字的数学是正确的,我的问题是返回一个提示尝试递归代码变得很好。最好的方法是阶乘!!谢谢!仍然熟悉递归函数谢谢!仍然熟悉递归函数请不要发布只将代码作为答案,但也要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,并且更有可能吸引更多的选票。请不要只将代码作为答案发布,还要解释代码的作用以及它如何解决问题问题的问题。有解释的答案通常更有帮助,质量更好,更有可能吸引更多的选票。