题解 | 快乐数

快乐数

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务