সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা অনন্য পূর্ণসংখ্যার একটি অ্যারে নেয়, প্রথম আর্গুমেন্ট হিসাবে arr এবং দ্বিতীয় আর্গুমেন্ট হিসাবে লক্ষ্য যোগফল।
আমাদের ফাংশনের সমস্ত জোড়ার সংখ্যা গণনা করা উচিত (পুনরাবৃত্তি অনুমোদিত) যা লক্ষ্য যোগফল পর্যন্ত যোগ করতে পারে এবং সেই সংখ্যাটি ফেরত দিতে পারে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 2, 3]; const target = 4;
তারপর আউটপুট −
হওয়া উচিতconst output = 7;
আউটপুট ব্যাখ্যা:
কারণ, সম্ভাব্য সমন্বয়ের উপায় হল −
(1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 2, 3]; const target = 4; const sumUpto = (nums = [], target = 1, map = {}) => { if (target === 0){ return 1; }; if (typeof map[target] != "undefined"){ return map[target]; }; let res = 0; for (let i = 0; i<nums.length; i++) { if (target >= nums[i]){ res += sumUpto(nums, target - nums[i], map); }; }; map[target] = res; return res; }; console.log(sumUpto(arr, target));
আউটপুট
এবং কনসোলে আউটপুট হবে −
7