馬上就好了,這不是一個家庭作業問題。我在空閒時間練習遞歸問題,並且仍然在圍繞這個概念進行思考。我非常接近解決這個問題,但當我將它們加在一起時,我無法弄清楚如何跳過根整數'n'。這是迄今爲止代碼:如何使用遞歸求和一個給定整數以下的所有整數
var sumBelow = function (n) {
console.log(n);
// base case
if (n === 0) {
console.log('we hit the base case');
return 0;
}
// initialize var to hold sum
if (!sum_sumBelow) var sum_sumBelow = 0;
// add numbers
sum_sumBelow = n + sumBelow(n - 1);
return sum_sumBelow;
};
console.log('answer is', sumBelow(4));
當我打電話 'sumBelow(4)' 我要的是3 + 2 + 1,但我目前得到4 + 3 + 2 + 1。
如何跳過根參數?
只需要調用「sumBelow(n-1)」並調用「sumbelow(4)」的另一個函數「sumbelow(n)」。 – mimre
不是你要求的,但是「初始化var」if語句不是必須的:sum_sumBelow變量不在遞歸調用中傳遞,它只適用於當前調用。你可以完全移除這個變量,只是'return n + sumBelow(n -1)'。 – nnnnnn
@nnnnnn感謝您指出了這一點!將記住這一點 –