Javascript Factorialize返回不正确的结果

时间:2016-09-14 22:58:21

标签: javascript

只是想知道是否有人能告诉我为什么这会返回100而不是120?它应该计算因子的总数。

....

</section>

<div class="Halloweeny"></div>

        <!-- Image section -->
        <section class="image-section red" id="image-section">

.....

3 个答案:

答案 0 :(得分:2)

这不是计算阶乘的正确方法。您的代码中发生了什么,最后一次运行total = fact * fact;行时,fact的值为10(因为i为5),因此10 * 10变为100是它的回报。

答案 1 :(得分:1)

TLDR您正在覆盖fact的所有值。 var的范围限定为JS中的函数。最终,您会到达i = 5,最终将事实设置为(5+5) * (5+5),即100。

答案 2 :(得分:1)

如果您要计算阶乘,请使用以下代码:

function factorialize(num) {
  var total = 1; // Initialize the total. 0! = 1.
  for(var i = 1; i <= num; i++ ) {

    total = total * i; // Add the current index to the factors by multiplying it by the current total.
  }
  return total;
}