阶乘javascript代码?
我使用for循环为JS中的factorial编写了这段代码,但它没有显示所需的输出 我的代码有什么问题阶乘javascript代码?,javascript,recursion,factorial,Javascript,Recursion,Factorial,我使用for循环为JS中的factorial编写了这段代码,但它没有显示所需的输出 我的代码有什么问题 var solution; for (x = 12; x > 0; x -= 1) { for (y = 12; y > 0; y -= 1){ solution = y * x; } } console.log(solution); 当您重新定义它时,您没有使用解决方案,所以基本上您是在计算 solution = 1 * 1; 您的代码似乎与
var solution;
for (x = 12; x > 0; x -= 1) {
for (y = 12; y > 0; y -= 1){
solution = y * x;
}
} console.log(solution);
当您重新定义它时,您没有使用
解决方案
,所以基本上您是在计算
solution = 1 * 1;
您的代码似乎与阶乘或递归(需要函数定义)无关。12的阶乘是12*11*10…*2*1 要在循环中写入,您需要将上一次迭代的结果乘以当前的结果,如下所示
var solution = 1;
for (x = 12; x > 0; x -= 1) {
solution = solution*x
}
console.log(solution);
您的示例将以y和x为1结束。从而输出1×1。您需要保存上一个操作的结果
我建议你在以后的问题上遵循社区规则,我也不想阻止你加入这个社区,但请以后用谷歌搜索。你的内部for循环是不必要的。您需要设置一个初始条件(即,最初将解决方案设置为1),然后重复将12到1之间的数字乘以该初始条件 使用for循环称为“迭代”而不是递归 要递归地执行此操作,您至少需要定义一个函数。不过,学习如何递归思考确实是你应该在谷歌上搜索的东西 无论哪种方法,这两种方法都是寻找阶乘的基本方法,使用哪种方法并不重要
//迭代
var溶液=1,
数字=12,
x、 y;
对于(x=数量;x>0;x-=1){
解*=x;
}
console.log(解决方案);
//递归的
函数事实(n){
如果(n==1)
返回1;
其他的
返回n*事实(n-1);
}
console.log(事实(数字))
var-fact=1;
函数阶乘(n){
对于(;n>1;n--){
事实*=n;
}
返回事实;
}
console.log(阶乘(8))代码>您能解释一下您希望每个部分做什么吗?因为您每次迭代都会替换解决方案。。。。因此,当您在最后一次迭代中时,您将获得值……欢迎使用StackOverflow。虽然这段代码可以回答这个问题,但提供关于它如何和/或为什么解决问题的附加上下文将提高答案的长期价值。