题解 | 快乐数
快乐数
https://www.nowcoder.com/practice/293b9ddd48444fa493dd17da0feb192d
这个题首先要知道,所有不快乐数的数位平方和计算, 最後都会进入:
4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的循环中。
在十进位下,个位数的快乐数只有1和7.
(100以内的快乐数有 :1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100。)
这里我们简单判断一下十以内的即可(个位数是不是1或7)。
所以只需要写一个专门用来做转换过程的函数, 然后循环去转换,直到这个数是个位数的时候,判断是不是1或7就行了。
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return bool布尔型
#
class Solution:
def happynum(self , n: int) -> bool:
# write code here
while n>9:#当n大于9时,寻找小于10的快乐数
res = 0
while n:
res += (n%10)**2
n //= 10
n = res#计算依次快乐数
return n==1 or n==7

