मान लीजिए हमें एक पुनरावर्ती फ़ंक्शन लिखना है जो संख्याओं की एक सरणी के सभी तत्वों का योग करता है लेकिन एक मोड़ के साथ और मोड़ यह है कि हमारे द्वारा लिखा गया पुनरावर्ती फ़ंक्शन कोई अतिरिक्त चर (मेमोरी) प्रारंभ नहीं कर सकता।
जैसे हम योग को संग्रहीत करने के लिए एक चर का उपयोग नहीं कर सकते या सरणी के सूचकांक की गिनती रखने के लिए, यह सब हमारे पास पहले से मौजूद चीजों का उपयोग करके करना होगा।
यहाँ समाधान है:
हमारे पास पहले से ही एक सरणी है और हम इसके पहले तत्व (यानी, शून्यवें सूचकांक पर तत्व) का उपयोग पुनरावर्ती योग को रखने के लिए कर सकते हैं।
दृष्टिकोण यह है कि हम सरणी से बार-बार एक तत्व निकालते हैं और इसे सरणी के पहले तत्व में जोड़ते हैं जब तक कि हम केवल एक तत्व के साथ नहीं बचे।
जब हम केवल एक तत्व के साथ बचे होते हैं, तो यह सरणी का संचयी योग होगा और हम उसे लौटाते हैं। इस दृष्टिकोण के लिए कोड होगा:
उदाहरण
const recursiveSum = arr => {
if (arr.length > 1) {
arr[0] += arr.pop();
return recursiveSum(arr);
}
return arr[0];
};
console.log(recursiveSum([1,2,3,4]));
console.log(recursiveSum([1,2,3,4,3,6,3,32,7,9,5]));
console.log(recursiveSum([]));
आउटपुट
कंसोल में आउटपुट होगा:
10 75 undefined