快乐数最终会回到1。
非快乐数不会回到1会陷入无限循环。
放在一个set里,如果num在set里,find(num)!=end(), 为不快乐数。
class Solution {
public:
int getNum(int n)
{
int sum = 0;
while(n>0)
{
sum += (n%10) * (n%10);
n /= 10;
}
return sum;
}
bool isHappy(int n)
{
unordered_set<int> set;
while(true)
{
int sum = getNum(n);
if (sum == 1)
{
return true;
}
if(set.find(sum) != set.end())
{
return false;
}
else
{
set.insert(sum);
}
n =sum;
}
}
};