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

JavaScript में केले वितरण समस्या


समस्या

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

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

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

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

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

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

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

const num = 3; 
const m = 10;

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

const output = [5, 2, 3];

आउटपुट व्याख्या:

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

दूसरे चरण में, res[1] += 2, और सरणी है [1,2,0]।

तीसरे चरण में, res[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. JavaScript Let कीवर्ड JavaScript Let कीवर्ड

    2015 में पेश किया गया JavaScript Let कीवर्ड हमें ब्लॉक-स्कोप्ड वेरिएबल परिभाषित करने की अनुमति देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale

  1. JavaScript Random नंबर JavaScript Random नंबर

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

  1. JavaScript Promises JavaScript Promises

    JavaScript में Promises हमें एसिंक्रोनस ऑपरेशन करने की अनुमति देते हैं जहां वैल्यू प्रॉमिस बनाते समय पहले से ज्ञात नहीं होती। एक प्रॉमिस की तीन अवस्थाएं हो सकती हैं: पेंडिंग, फुलफिल्ड और रिजेक्टेड।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&