题目:
算法思想:如果不是快乐数,那么一定会产生循环,把所有的数记录下来,如果重复出现那么一定不是快乐数。存储的数据结构用set,时间复杂度比较低,hash更好。
代码:
bool isHappy(int n) {
set<int> s;
while(n != 1)
{
int tmp = n;
int sum = 0;
while(tmp != 0)
{
sum += pow(tmp%10,2);
tmp = tmp/10;
}
if(s.find(sum) != s.end())
return false;
else
s.insert(sum);
n = sum;
}
return true;
}