Python 中的快乐数
pythonserver side programmingprogramming更新于 2025/11/2 0:44:17
在这里我们将看到如何检测数字 n 是否是快乐数。快乐数是一个数字,从任何正整数开始,用其数字的平方和替换该数字,这个过程将重复,直到它变成 1,否则它将无限循环。当找到 1 时,这些数字将成为快乐数。
假设数字为 19,则输出将为真,因为该数字是快乐数。从 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 和已访问列表递归返回函数
示例
让我们看看下面的实现以便更好地理解 −
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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

