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

पायथन में हैप्पी नंबर

मान लीजिए कि हमारे पास एक संख्या n है। हम जांच करेंगे कि यह एक हैप्पी नंबर है या नहीं। जैसा कि हम जानते हैं, खुश संख्या एक संख्या है, जहां किसी भी सकारात्मक पूर्णांक से शुरू होने वाली संख्या को उसके अंकों के वर्गों के योग से बदल दिया जाता है, यह प्रक्रिया तब तक दोहराई जाएगी जब तक कि यह 1 न हो जाए, अन्यथा यह एक चक्र में अंतहीन रूप से लूप होगा। वे नंबर, जब 1 मिल जाए, तो वे खुश नंबर होंगे।

तो, इनपुट 19 की तरह है, आउटपुट सही होगा क्योंकि नंबर हैप्पी नंबर है। जैसा कि हम 19 से देख सकते हैं, हम प्राप्त करेंगे

1 2 + 9 2 =82

8 2 + 2 2 =68

6 2 + 8 2 =100

1 2 + 0 2 + 0 2 =1

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

  • यहां हम डायनेमिक प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे, और इसे रिकर्सन का उपयोग करके हल करेंगे
  • आधार मामला है, जब n =1 है, तो सत्य वापस आ जाता है
  • जब n पहले ही जा चुका है, तो झूठी वापसी करें
  • एन को विज़िट किया गया के रूप में चिह्नित करें
  • n :=n स्ट्रिंग के रूप में, l :=n में सभी अंकों की सूची
  • अस्थायी:=सभी अंकों का वर्ग योग
  • पैरामीटर अस्थायी और विज़िट की गई सूची के साथ पुनरावर्ती रूप से वापसी फ़ंक्शन

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

उदाहरण

class Solution(object):
   def isHappy(self, n):
      return self.solve(n,{})
   def solve(self,n,visited):
      if n == 1:
         return True
      if n in visited:
         return False
         visited[n]= 1
         n = str(n)
         l = list(n)
         l = list(map(int,l))
         temp = 0
         for i in l:
            temp += (i**2)
         return self.solve(temp,visited)
ob = Solution()
print(ob.isHappy(19))

इनपुट

19

आउटपुट

True

  1. पायथन में कॉम्प्लेक्स नंबर कैसे प्लॉट करें?

    आप एक ध्रुवीय भूखंड पर सम्मिश्र संख्याओं को आलेखित कर सकते हैं। यदि आपके पास सम्मिश्र संख्याओं की एक सरणी है, तो आप इसका उपयोग करके प्लॉट कर सकते हैं: import matplotlib.pyplot as plt import numpy as np cnums = np.arange(5) + 1j * np.arange(6,11) X = [x.real for x in cnums] Y = [x.imag for x in cnum

  1. पायथन में फ्लोटिंग नंबरों को कैसे दबाना है?

    क्लैंप फ़ंक्शन किसी मान को किसी दी गई सीमा तक सीमित करता है। पायथन में ऐसा कोई फ़ंक्शन नहीं है। आप इस प्रकार्य को इस प्रकार बना सकते हैं def clamp(num, min_value, max_value):    return max(min(num, max_value), min_value) print(clamp(5, 1, 20)) print(clamp(1, 10, 20)) print(clamp(20, 1, 10)

  1. पायथन में संख्याओं की तुलना कैसे करें?

    आप अजगर में संख्याओं (फ्लोट और इंट दोनों) की तुलना करने के लिए अजगर में संबंधपरक ऑपरेटरों का उपयोग कर सकते हैं। ये ऑपरेटर दोनों पक्षों के मूल्यों की तुलना करते हैं और उनके बीच संबंध तय करते हैं। मान लें कि वेरिएबल a होल्ड 10 और वेरिएबल b होल्ड्स 20, फिर संचालक उदाहरण == (a ==b) सत्य नहीं है।