এই প্রোগ্রামে একটি সংখ্যা m কে n দৈর্ঘ্যের অ্যারেতে সমানভাবে ভাগ করা হয় যাতে সব উপাদানের যোগফল m হয়।
উদাহরণ
m = 5 (যোগফল) n = 8 (অ্যারের দৈর্ঘ্য) // প্রতিটি উপাদান = 5/8 = 0.625 // অ্যারে: [0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625]
সমাধান
const splitNumber = (len, sum) => {
// ভ্যালিডেশন
if (len <= 0) return [];
if (sum === 0) return new Array(len).fill(0);
const value = sum / len;
return new Array(len).fill(value);
};
// টেস্ট
console.log(splitNumber(8, 5));
// [0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625]
console.log(splitNumber(5, 100));
// [20, 20, 20, 20, 20]
বিকল্প: পূর্ণসংখ্যা অ্যারে (যদি দরকার হয়)
const splitNumberInteger = (len, sum) => {
if (len <= 0) return [];
const base = Math.floor(sum / len);
const remainder = sum % len;
const result = new Array(len).fill(base);
// বাকি অংশ বিতরণ করুন (প্রথম few উপাদানে +1)
for (let i = 0; i < remainder; i++) {
result[i]++;
}
return result;
};
console.log(splitNumberInteger(8, 5));
// [1, 1, 1, 1, 1, 0, 0, 0] - যোগফল ৫
উৎপাদন
[ 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625 ]