快乐数
快乐数
编写一个算法来判断一个数 n
是不是快乐数。
「快乐数」 定义为:
- 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
- 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
- 如果这个过程 结果为 1,那么这个数就是快乐数。
如果 n
是 快乐数 就返回 true
;不是,则返回 false
。
示例 1:
1 | 输入:n = 19 |
示例 2:
1 | 输入:n = 2 |
提示:
1 <= n <= 231 - 1
这道题有两种情况:
- 是快乐数,经过一系列计算后
n=1
,返回真 - 不是快乐数,
n
会在几个数中循环,就像一个环形链表
第二种情况的证明过程很复杂,用到了不知道是极限还是无穷级数,没仔细看。总之挺复杂。但这道题的标签是简单。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 面试资料!