| 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 |