题目在这:https://leetcode-cn.com/problems/happy-number/
思路分析:
本题唯一不好想的点在于如何判断该数不是快乐数,也就是该数会无限循环。
通过观察可以发现,如果这个数在操作过程中重复出现了,或者等于了原始的数。则该操作会无限循环下去。
所以我们首先将所给数字变成列表型,让他可以遍历,然后每一位都平方,再相加。
在这个操作过程中看他是不是等于1 了 等于就是快乐数了,返回True。
如果重复出现或等于原始数了,则不是快乐数,返回False。
完整代码:
把所有的数都放在列表里,用于判断是否出现过。
使用列表推导式将int型变成列表用于遍历。
这句话: n_list = [int(x) for x in str(n)]
即将int型的n先变成str型进入循环,然后变成int型推入列表。
提交: