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

पायथन में लोगों को कैंडी वितरित करें

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

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

हम इस प्रक्रिया को तब तक दोहराएंगे जब तक कि हमारे पास कैंडी खत्म न हो जाए। आखिरी लोगों को हमारी सभी बची हुई मिठाइयाँ मिलेंगी (जरूरी नहीं कि पिछले उपहार से एक अधिक)।

हमें एक सरणी वापस करनी है जो कैंडीज के अंतिम वितरण का प्रतिनिधित्व करती है। तो मान लीजिए कि कैंडीज 7, और n =3 हैं, तो आउटपुट [2, 2, 3] होगा। तो सबसे पहले पहले व्यक्ति को 1 मिलेगा। सरणी [1, 0, 0] है, दूसरी वाली को 2 मिली है, फिर सरणी [1, 2, 0] है, तीसरे को 3 मिली है, फिर सरणी [1, 2, 3], और अंत में पहले वाले को फिर से 1 मिला, इसलिए सरणी [2, 2, 3]

. है

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • res n तत्वों की एक सरणी है, और 0 से भरें
  • सूचकांक:=0
  • जबकि कैंडीज> 0
    • res[index mod n] :=res[index mod n] + मिन्ट ऑफ कैंडीज और इंडेक्स + 1
    • कैंडीज:=कैंडीज - 1
    • सूचकांक :=अनुक्रमणिका + 1
  • रिटर्न रेस

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

class Solution(object):
   def distributeCandies(self, candies, num_people):
      res = [0 for i in range(num_people)]
      index = 0
      while candies>0:
         res[index%num_people] += min(candies,index+1)
         candies-=(index+1)
         index+=1
      return res
ob1 = Solution()
print(ob1.distributeCandies(8, 3))

इनपुट

8
3

आउटपुट

[3, 2, 3]

  1. issuperset () पायथन में

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

  1. कॉल करने योग्य () पायथन में

    पायथन में कॉल करने योग्य () फ़ंक्शन इसकी मानक लाइब्रेरी का हिस्सा है जो ऑब्जेक्ट कॉल करने योग्य होने पर सत्य लौटाता है और यदि यह नहीं है तो झूठा लौटाता है। ऑब्जेक्ट में कॉल करने योग्य होने के लिए कॉल विधि होनी चाहिए। उदाहरण के लिए यदि हम केवल मान के साथ एक चर घोषित करते हैं, तो यह कॉल करने योग्य नही

  1. पायथन में अंडरस्कोर (_)

    पायथन में कुछ मामलों में हम सिंगल अंडरस्कोर (_) का उपयोग करते हैं और कुछ मामलों में हम डबल अंडरस्कोर (__) का उपयोग करते हैं। पायथन में निम्नलिखित मामले हैं, जहां हम अंडरस्कोर का उपयोग करते हैं। अगर हम दुभाषिए में लास्ट एक्सप्रेशन की वैल्यू स्टोर करना चाहते हैं। यदि हम कुछ मूल्यों को अनदेखा करना चा