কম্পিউটার টিউটোরিয়াল

পাইথনে কোলাত্জ সিকোয়েন্সের দৈর্ঘ্য বের করুন


मान लीजिए हमारे पास एक धनात्मक पूर्णांक n है, हमें इसकी कोलात्ज अनुक्रम की लंबाई ढूंढनी है। जैसा कि हम जानते हैं, कोलात्ज अनुक्रम क्रमिक रूप से उत्पन्न होता है जहां n = n/2 जब n सम होता है अन्यथा n = 3n + 1। और यह अनुक्रम तब समाप्त होता है जब n = 1 हो जाता है।

यदि इनपुट n = 13 जैसा है, तो आउटपुट 10 होगा क्योंकि [13, 40, 20, 10, 5, 16, 8, 4, 2, 1] यह अनुक्रम है।

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

  • यदि num 0 के समान है, तो 0 लौटाएं
  • length := 1
  • जब तक num 1 के समान नहीं है, करें:
    • num := (num / 2) यदि num % 2 == 0 अन्यथा (3 * num + 1)
    • length := length + 1
  • length लौटाएं

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

उदाहरण

class Solution:
    def solve(self, num):
        if num == 0:
            return 0
        length = 1
        while num != 1:
            num = (num / 2) if num % 2 == 0 else (3 * num + 1)
            length += 1
        return length

ob = Solution()
print(ob.solve(13))

इनपुट

13

आउटपुट

10

  1. পাইথনে সিকোয়েন্স থেকে দ্বিতীয় সর্বাধিক রিপিট হওয়া ওয়ার্ড বের করা

  2. Python-এ লিস্ট প্রিন্ট করা

  3. Python-এ সিকোয়েন্স ইনডেক্স দিয়ে ইটারেট করা

  4. পাইথনে কলন (:) অপারেটর কী কাজ করে?