আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে সংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি একক সংখ্যা নেয়৷
ফাংশনটি অ্যারে থেকে এমন উপাদান বাছাই করা উচিত যেগুলি যোগ করা হলে অ্যারের দ্বিতীয় আর্গুমেন্ট দ্বারা নির্দিষ্ট যোগফল পাওয়া যায়। ফাংশনটি এমন সমস্ত সংখ্যার সাবয়ারের একটি অ্যারে প্রদান করবে যা যোগ করলে প্রয়োজনীয় যোগফল পাওয়া যায়।
নোট করুন যে অর্ডারটি গুরুত্বপূর্ণ নয় এবং প্রয়োজনে যোগফল তৈরি করতে আমাদের একাধিকবার একটি সংখ্যা ব্যবহার করার স্বাধীনতা রয়েছে৷
যেমন −
যদি ইনপুট অ্যারে এবং যোগফল −
হয়const arr =[14, 6, 10];const sum =40;
তারপর আউটপুট −
হওয়া উচিতকনস্ট আউটপুট =[ [ 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); যদি (s ===যোগফল) { res.push(part) }; যদি (s>=সমষ্টি || সূচক>=arr.length){ ফেরত; }; অনুসন্ধান(index, part.concat(arr[index])); অনুসন্ধান (সূচক + 1, অংশ); }; অনুসন্ধান(0); রিটার্ন res;}console.log(findSum(arr, sum));
আউটপুট
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে <প্রে>[ [ 14, 14, 6, 6 ], [ 14, 6, 10, 10 ], [ 6, 6, 6, 6, 6, 10 ], [ 10, 10, 10, 10 ]]পূর্বে>