-1
我正在解決一個因子問題,其中函數需要一個數並返回該數的階乘。因子碼有效,但爲什麼
我遇到的問題是,代碼的作品,但我不知道爲什麼。在代碼執行後沒有循環可以調用它,我甚至不知道當前值的存儲位置。如果我是正確的,我假定函數在每次返回時都會重新運行,它是以n-1的值運行,因此一個數字小於上一次運行的數字,但是,我仍然不知道如何通過當前值將值存儲到多個每個數字。即使我在每次運行後記錄n的當前值,我所得到的數字都是10到1之間的數字。我認爲現在的價值會變成乘數值。
這段代碼再次完美工作我只需要明白爲什麼。
function factorial(n) {
if (n === 0) {
return 1;
}
console.log(n);
return n * factorial(n - 1);
}
factorial(10);
這是一個遞歸函數的一個非常基本的例子。我會建議閱讀他們的工作方式:https://en.wikipedia.org/wiki/Recursion_(computer_science)#Recursive_functions_and_algorithms – sunil