Python 中的快乐数
这里我们将了解如何判断一个数字 n 是快乐数。快乐数是一个数字,以任意正整数开头,将这个数字替换为其各数字平方和,这个过程将重复进行,直到它变为 1,否则它将无限循环。当找到 1 时,这些数字将是快乐数。
假设数字是 19,则输出将为 true,因为该数字是快乐数。从 19 开始,我们可以得到
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
要解决这个问题,我们将按照以下步骤进行 −
- 这里我们将使用动态规划方法,并使用递归来解决这个问题
- 基本情况是,当 n = 1,则返回 true
- 当 n 已经被访问过,则返回 false
- 标记 n 为已访问
- n := n 为字符串,l := n 中所有数字的列表
- temp := 所有数字的平方和
- 使用 temp 和 visited 列表作为参数递归调用函数
示例
让我们看看以下实现,以获得更好的理解 −
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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP