Python 中的快乐数字
pythonserver side programmingprogramming更新于 2025/12/26 11:24: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):
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)
ob = Solution()
print(ob.isHappy(19))
输入
19
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

