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 से भरा है
  • index := 0
  • जब तक candies > 0
    • res[index mod n] := res[index mod n] + min(candies, index + 1)
    • candies := candies - (index + 1)
    • index := index + 1
  • res लौटाएं

उदाहरण

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

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() फंक्शन

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

  1. - पायथन में callable() फ़ंक्शन

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

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

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