class Solution: | |||||
def __init__(self): | |||||
self.memo = dict() | |||||
def isHappy(self, n): | |||||
return self.recIsHappy(n) | |||||
def recIsHappy(self, n): | |||||
if n in self.memo: | |||||
return False | |||||
elif n == 1: | |||||
return True | |||||
else: | |||||
self.memo[n] = True | |||||
newN = 0 | |||||
for c in str(n): | |||||
newN += int(c) ** 2 | |||||
return self.recIsHappy(newN) | |||||
s = Solution() | |||||
print("Expected: True") | |||||
print("Got:", s.isHappy(19)) |
Write an algorithm to determine if a number is "happy". | |||||
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers. | |||||
Example: | |||||
Input: 19 | |||||
Output: true | |||||
Explanation: | |||||
12 + 92 = 82 | |||||
82 + 22 = 68 | |||||
62 + 82 = 100 | |||||
12 + 02 + 02 = 1 |
#!/bin/bash | |||||
python3 main.py |