Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में केले की समस्या का वितरण

<घंटा/>

समस्या

मान लीजिए कि एक कतार में n लोग खड़े हैं, हम लोगों को केले इस प्रकार वितरित करना चाहते हैं -

  • हम पहले व्यक्ति को 1 केला देते हैं, दूसरे व्यक्ति को 2 केले, और इसी तरह जब तक हम अंतिम व्यक्ति को n केले नहीं देते।

  • फिर, हम पंक्ति की शुरुआत में वापस जाते हैं, पहले व्यक्ति को n + 1 केला, दूसरे व्यक्ति को n + 2 केले, और इसी तरह जब तक हम अंतिम व्यक्ति को 2 * n केले नहीं देते।

  • यह प्रक्रिया दोहराई जाती है (हमारे साथ हर बार एक और केला देना, और अंत तक पहुंचने के बाद पंक्ति की शुरुआत में जाना) जब तक हम कैंडी से बाहर नहीं निकलते। अंतिम व्यक्ति को हमारे सभी शेष केले प्राप्त होंगे।

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो लोगों की संख्या, संख्या, पहले तर्क के रूप में, और केले की संख्या, एम, दूसरे तर्क के रूप में लेता है।

हमारे फ़ंक्शन को केले के अंतिम वितरण का प्रतिनिधित्व करने वाली एक सरणी (लंबाई संख्या योग मीटर) वापस करनी चाहिए।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

const num = 3;
const m = 10;

तब आउटपुट होना चाहिए -

const output = [5, 2, 3];

आउटपुट स्पष्टीकरण:

पहले मोड़ पर, res[0] +=1, और सरणी [1,0,0] है।

दूसरे मोड़ पर, रेस[1] +=2, और ऐरे [1,2,0] है।

तीसरे मोड़ पर, रेस[2] +=3, और ऐरे [1,2,3] है।

चौथे मोड़ पर, res[0] +=4, और अंतिम सरणी [5,2,3] है।

उदाहरण

इसके लिए कोड होगा -

const num = 3;
const m = 10;
const distributeBananas = (num = 1, m = 1) => {
   const res = new Array(num).fill(0);
   let curr = 1;
   while(true){
      for(let i = 0; i < num; i++){
         if(m < curr){
            res[i] += m
            return res
         };
         res[i] += curr;
         m -= curr;
         curr++;
      };
   };
};
console.log(distributeBananas(num, m));

आउटपुट

और कंसोल में आउटपुट होगा -

[5, 2, 3]

  1. जावास्क्रिप्ट चलो

    2015 में पेश किया गया जावास्क्रिप्ट लेट कीवर्ड हमें ब्लॉक स्कोप्ड वेरिएबल्स को परिभाषित करने की अनुमति देता है। जावास्क्रिप्ट में Let कीवर्ड का उपयोग करके वेरिएबल घोषित करने के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना{

  1. जावास्क्रिप्ट रैंडम

    Math.random() फ़ंक्शन का उपयोग 0 और 1 के बीच एक यादृच्छिक फ़्लोटिंग-पॉइंट संख्या उत्पन्न करने के लिए किया जाता है। Math.random() फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="

  1. जावास्क्रिप्ट वादे

    जावास्क्रिप्ट में वादे हमें अतुल्यकालिक संचालन करने की अनुमति देते हैं जहां मूल्य उन्नत में ज्ञात नहीं होता है जब वादा बनाया जा रहा था। एक वादे में तीन राज्य लंबित, पूरे और अस्वीकृत हो सकते हैं। जावास्क्रिप्ट में वादों के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en&q