समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में एक संख्या, संख्या और दूसरे तर्क के रूप में दूसरी संख्या, भागों को लेता है।
हमारे फ़ंक्शन को संख्या संख्या को बिल्कुल (भागों) संख्याओं में विभाजित करना चाहिए और हमें इन दो शर्तों को ध्यान में रखना चाहिए -
- संख्याएं यथासंभव निकट होनी चाहिए
- संख्याएं सम होनी चाहिए (यदि संभव हो तो)।
और संख्याओं का क्रम महत्वपूर्ण नहीं है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इनपुट
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 ]