সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num প্রথম আর্গুমেন্ট এবং অন্য একটি সংখ্যা parts দ্বিতীয় আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি সংখ্যা num-কে ঠিক parts সংখ্যক সংখ্যায় ভাগ করবে এবং দুটি শর্ত মেনে চলবে –
- সংখ্যাগুলো যেন যতটা সম্ভব একে অপরের কাছাকাছি হয়
- সংখ্যাগুলো যেন জোড় হয় (যদি সম্ভব হয়)।
সংখ্যাগুলোর ক্রম গুরুত্বপূর্ণ নয়।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const num = 20; const parts = 6;
আউটপুট
const output = [3, 3, 3, 3, 4, 4];
উদাহরণ
নিচে কোডটি দেওয়া হল –
const num = 20;
const parts = 6;
const splitNumber = (num = 1, parts = 1) => {
let n = Math.floor(num / parts);
const arr = [];
for (let i = 0; i < parts; i++) {
arr.push(n);
}
if (arr.reduce((a, b) => a + b, 0) === num) {
return arr;
}
for (let i = 0; i < parts; i++) {
arr[i]++;
if (arr.reduce((a, b) => a + b, 0) === num) {
return arr;
}
}
};
console.log(splitNumber(num, parts));
আউটপুট
[4, 4, 3, 3, 3, 3]