यहां हम देखेंगे कि किसी संख्या का पता कैसे लगाया जाता है 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):
"""
:type n: int
:rtype: bool
"""
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)
ob1 = Solution()
op = ob1.isHappy(19)
print("Is Happy:",op) इनपुट
19
आउटपुट
Is Happy: True