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

Python में कैंडी वितरण नियमों का पालन करते हुए कितने बच्चों को कैंडी मिलेगी, यह खोजने का प्रोग्राम


मान लीजिए हमारे पास k संख्या में कैंडी हैं। हमें उन्हें बच्चों के बीच वितरित करना है। अब कुछ नियम हैं:

  • i-वां बच्चे को i^2 संख्या में कैंडी मिलेगी
  • इंडेक्स i पर कोई भी बच्चा तब तक कैंडी नहीं पाएगा जब तक इंडेक्स 1 से i-1 तक के सभी बच्चों को सर्व नहीं किया जाता
  • यदि i-वां बच्चा i^2 संख्या में कैंडी नहीं पाता है, तो वह वैध वितरण नहीं है।

तो, यदि इनपुट k = 20 है, तो आउटपुट 3 होगा क्योंकि, पहला 1 पाएगा, दूसरा 2^2 = 4 पाएगा, तीसरा 3^2 = 9 पाएगा, लेकिन चौथे को 4^2 = 16 चाहिए, लेकिन हमारे पास केवल 6 कैंडी बची हैं, इसलिए यह वैध वितरण नहीं है, इसलिए केवल तीन बच्चों को सर्व किया जाएगा।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • left := 0, right := k
  • जब right - left > 1, करें
    • mid := floor of (left + right) / 2
    • यदि floor of (mid * (mid + 1) * (2 * mid + 1) / 6) > k, तो
      • right := mid
    • अन्यथा,
      • left := mid
  • यदि right *(right + 1) *(2 * right + 1) <= k * 6, तो
    • right वापस करें
  • left वापस करें

उदाहरण

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

def solve(k): left = 0 right = k while (right - left > 1): mid = (left + right) // 2 if (mid * (mid + 1) * (2 * mid + 1) // 6 > k): right = mid else: left = mid if (right * (right + 1) * (2 * right + 1) <= k * 6): return right return left k = 20 print(solve(k))

इनपुट

20 

आउटपुट

3

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक मैट्रिक्स दिए जाने पर, हमें ट्रांसपोज़ को उसी मैट्रिक्स में स्टोर करना होगा और इसे प्रदर्शित करना होगा। मैट्रिक्स का ट्रांसपोज़ पंक्तियों को कॉलम में और कॉलम को पंक्तियों में बदलकर

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें