Tips:
第一次没有AC是因为没有判断1这个特殊的数,其他没有什么太难的地方,代码和注释如下:
public class Solution202 {
public boolean isHappy(int n) {
int nn = n,temp = 0;
Set set = new HashSet(); //用set检测是否回到了起点
set.add(n); //将n加入
if(n == 1) //1需要先判断
return true;
while(temp!=1) {
temp = 0;
while (nn != 0) { //各位的平方和
temp += Math.pow(nn % 10, 2);
nn = nn / 10;
}
if(set.contains(temp))
return false;
set.add(temp);
nn = temp;
}
return true; //若循环结束则是Happy Number
}
}