迭代的用n的各位的平方和来代替n判断能否收敛到1。完全按照题目推下去,用一个list记录出现过的n,若再次出现意味着进入循环,返回false。否则收敛到1的时候返回true。
public class Solution {
public boolean isHappy(int n) {
List<Integer> ever = new ArrayList<Integer>();
while(n!=1)
{
if(ever.contains(n))
{
return false;
}
ever.add(n);
int temp=0;
while(n!=0)
{
int digit = n%10;
temp += digit*digit;
n = n/10;
}
n = temp;
}
return true;
}
}