সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি সংখ্যা অ্যারে (arr) এবং دوم আর্গুমেন্ট হিসেবে একটি সংখ্যা (num) নেবে। ফাংশনটি সেই সমস্ত (coniguous, non-empty) সাব-অ্যারে-এর সংখ্যা রিটার্ন করবে যাদের সমষ্টি num দ্বারা বিভাজ্য।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = [4, 5, 0, -2, -3, 1]; const num = 5;
তবে আউটপুট হবে –
const output = 7;
আউটপুট ব্যাখ্যা
৫ দ্বারা বিভাজ্য সমষ্টি वाले ৭টি সাব-অ্যারে রয়েছে –
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
উদাহরণ
কোডটি নিচের মতো –
const arr = [4, 5, 0, -2, -3, 1]; const num = 5; const divisibleSum = (arr = [], num = 1) => { const map = {}; let sum = 0; for (let i = 0; i < arr.length; i++) { sum += arr[i]; const key = ((sum % num) + num) % num; map[key] = map[key]+1||1; }; let s = 0; for (let i = 0; i < num; i++) { if (map[i] > 1) { s += (map[i] * (map[i] - 1)) / 2; } } return s + (map[0]||0); }; console.log(divisibleSum(arr, num));আউটপুট
কনসোলে আউটপুট হবে –
7