需要有额外的空间来存储出现过的情况,防止有周期性的变化,从而发生死循环
class Solution {
public:
int QuadraticSum(int n)
{
int ans=0;
while(n>0)
{
ans=ans+(n%10)*(n%10);
n=n/10;
}
return ans;
}
bool isHappy(int n) {
map<int,int> mp;
int qs;
while(n!=1)
{
qs=QuadraticSum(n);
if(qs==1)
return true;
if(mp.find(qs)!=mp.end())
return false;
mp[n]=qs;
n=qs;
}
return true;
}
};