题目
分析
多次循环,要么会进入一个死循环,或者可能越来越大。
代码
class Solution
{
public:
int bitSquareSum(int n)
{
int sum = 0;
while(n > 0)
{
int bit = n % 10;
sum += bit * bit;
n = n / 10;
}
return sum;
}
bool isHappy(int n)
{
int slow = n, fast = n;
do
{
slow = bitSquareSum(slow);
fast = bitSquareSum(fast);
fast = bitSquareSum(fast);
}while(slow != fast);
return slow == 1;
}
};
测评结果
小结
双指针很好用。