思路:
(1)用一个集合set存储求每一步得到的数。
(2)对每一个数,若包含在集合中,则返回false。
(3)把每一个数加入集合中。
(4)对每一个数,求每一位的平方的和。
public class Solution {
public boolean isHappy(int n) {
Set<Integer> set =new HashSet<Integer>();
while (n != 1) {
if (set.contains(n))
return false;
set.add(n);
int temp = 0;
while (n > 0) {
temp += (n % 10) * (n % 10);
n = n / 10;
}
n = temp;
}
return true;
}
}
Runtime:6ms