সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে уникаل ইন্টিজার অ্যারে (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[i]){ res += sumUpto(nums, target - nums[i], map); }; }; map[target] = res; return res; }; console.log(sumUpto(arr, target)); আউটপুট
কনসোলে আউটপুট হবে –
7