हमें एक JavaScript फ़ंक्शन लिखना है जो नंबर्स के ऐरे को पहले आर्गुमेंट के रूप में और एक सिंगल नंबर को दूसरे आर्गुमेंट के रूप में लेता है।
फ़ंक्शन को ऐरे से ऐसे एलिमेंट्स चुनने चाहिए जो जुड़कर दूसरे आर्गुमेंट द्वारा निर्दिष्ट योग दें। फ़ंक्शन को ऐसे सभी सबऐरे का ऐरे लौटाना चाहिए जो जुड़कर आवश्यक योग दें।
ध्यान दें कि क्रम महत्वपूर्ण नहीं है और यदि आवश्यक हो तो हमारे पास योग उत्पन्न करने के लिए एक नंबर को एक से अधिक बार उपयोग करने की स्वतंत्रता है।
उदाहरण के लिए:
यदि इनपुट ऐरे और योग हैं:
const arr = [14, 6, 10]; const sum = 40;
तो आउटपुट होना चाहिए:
const output = [ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ] ];
उदाहरण
const arr = [14, 6, 10]; const sum = 40; const findSum = (arr, sum) => { const res = []; const search = (index, part = []) => { const s = part.reduce((a, b) => a + b, 0); if (s === sum){ res.push(part) }; if (s >= sum || index >= arr.length){ return; }; search(index, part.concat(arr[index])); search(index + 1, part); }; search(0); return res; } console.log(findSum(arr, sum));आउटपुट
इससे निम्नलिखित आउटपुट प्राप्त होगा:
[ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ] ]