@@ -0,0 +1,23 @@ | |||
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)) |
@@ -0,0 +1,13 @@ | |||
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 |
@@ -0,0 +1,3 @@ | |||
#!/bin/bash | |||
python3 main.py |