কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে n দ্বারা বিভাজ্য সাব-অ্যারে সমষ্টি গণনা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি সংখ্যা অ্যারে (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
  1. জাভাস্ক্রিপ্টে একটি সংখ্যা কি দুটি পারফেক্ট স্কোয়ারের যোগফল সেটি চেক করা

  2. জাভাস্ক্রিপ্টে সাবঅ্যারে গুলোর সর্বোচ্চ যোগফল ন্যূনতম করা (Split Array Largest Sum)

  3. জাভাস্ক্রিপ্টে ২ডি অ্যারে-এ টার্গেট থেকে ছোট বড়তম রেক্ট্যাঙ্গেলের সমষ্টি

  4. প্রথম Nটি প্রাকৃতিক সংখ্যা যেগুলো X বা Y দিয়ে বিভাজ্য, তাদের যোগফল