快乐数的性质:不断循环的结果必定是有限的值,只要用一个set存储,判断是否有重复的值出现即可。
class Solution {
public:
bool isHappy(int n) {
set<int> s;
while(n!=1)
{
int t=0;
while(n)
{
t=t+(n%10)*(n%10);
n=n/10;
}
n=t;
if(s.count(t)!=0)
break;
else
s.insert(t);
}
return n==1;
}
};