202. 快乐数 - 力扣(LeetCode)
由图可知,其实这也是一个判断循环的过程,要用到快慢指针,且相遇后,若在全为1的循环里,那么就是快乐数,若相遇后不为1,说明这不是快乐数。
int Sum(int n)
{
int sum=0;
while(n)
{
int t=n%10;
sum+=t*t;
n/=10;
}
return sum;
}
bool isHappy(int n) {
int slow=n,fast=Sum(n);
while(slow!=fast)
{
slow=Sum(slow);
fast=Sum(Sum(fast));
}
return slow==1;
}
快满指针的变式