202. 快乐数
难点:题目提示了找不到会无限循环,需要联想到出现重复sum意味着这个数不是快乐数
public boolean isHappy(int n) {
Set<Integer> visited = new HashSet<>();
String s = n + "";
while (true) {
int sum = 0;
for (char ch : s.toCharArray()) {
sum += (int)Math.pow(ch-'0',2);
}
if (sum == 1)
return true;
if (visited.contains(sum))
return false;
visited.add(sum);
s = sum + "";
}
}