python 学习笔记2-快乐数

题目:

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。

如果 n 是快乐数就返回 True ;不是,则返回 False 。

示例:

输入:19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

题目分析:

用 HashSet 检测循环:

python 学习笔记2-快乐数
python 学习笔记2-快乐数
python 学习笔记2-快乐数

算法:

算法分为两部分,我们需要设计和编写代码。

给一个数字 nn,它的下一个数字是什么?
按照一系列的数字来判断我们是否进入了一个循环。
第 1 部分我们按照题目的要求做数位分离,求平方和。

第 2 部分可以使用 HashSet 完成。每次生成链中的下一个数字时,我们都会检查它是否已经在 HashSet 中。

如果它不在 HashSet 中,我们应该添加它。
如果它在 HashSet 中,这意味着我们处于一个循环中,因此应该返回 false。

代码:
python 学习笔记2-快乐数
divmod()函数介绍:
python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
python 学习笔记2-快乐数

运行结果:
python 学习笔记2-快乐数

相关文章:

  • 2021-11-21
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
猜你喜欢
  • 2021-11-24
  • 2022-02-08
  • 2021-04-19
  • 2021-10-10
  • 2021-11-17
  • 2021-06-15
相关资源
相似解决方案