我正在經歷FreeCodeCamp挑戰之一。通過創建數組並對其進行乘法來對數字進行階乘化
「返回所提供的整數的階乘。
如果整數與字母n來表示,一個階乘是所有正整數小於或等於n的 產物。
階乘往往與速記符號代表N
例如:!5 = 1 * 2 * 3 * 4 * 5 = 120「
我已經知道最簡單的方法是使用遞歸,但到了發現這個事實的時候,我已經試圖通過創建一個數組來解決這個問題,並將數字與它們相乘。不過,我被困在這一步。我已經根據函數factorialize參數創建了一個數字位數的數組,但是我無法獲得這些數字的乘積。我做了什麼錯:
function factorialize(num) {
var array = [];
var product;
for(i = 0; i<=num;i++) {
array.push(i);
for (j=0; j < array.length; j++) {
product *= array[j];
}
return product;
}
}
factorialize(5);
您正在推送'0'作爲第一個元素。所以自然產品也將是'0'。 –
您還應該將'product'初始化爲'1'。 –
關鍵是該函數返回NaN,甚至不是0 :) –