思路
快慢指针解决无限循环的问题
代码实现
class Solution {
public boolean isHappy(int n) {
int fast=n;
int slow=n;
do{
slow=f(slow);
fast=f(fast);
fast=f(fast);
if(slow==1||fast==1) return true;
}while(fast!=slow);
return slow==1;
}
public int f(int n)
{
int sum=0;
while(n!=0)
{
int temp=n%10;
sum+=temp*temp;
n=n/10;
}
return sum;
}
}
京公网安备 11010502036488号