P180. 快乐数

leetcode 202 lintcode 488 哈希表 双指针 数学 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个整数 n,你要实现一个算法来判断它是否为快乐数。

快乐数的定义是:从任意正整数开始,将它变换为十进制位上各个数字的平方和。不断重复这个变换过程,如果最后数字可以变换成 1,那么这个数字就是快乐数;否则它会在一系列不包含 1 的数字之间循环变换,这样的数字不是快乐数。

比如说,给你的整数 n 等于 28:

n = 28

接着将数字变换为十进制位上各个数字的平方和:

2^2 + 8^2 = 4 + 64 = 68
6^2 + 8^2 = 36 + 64 = 100
1^2 + 0^2 + 0^2 = 1

至此,整数 28 变换成 1。因此 28 是一个快乐数,返回 true。

相关视频:判断单链表是否有环

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。