class Solution {
public:
int getNext(int num){
int d,sum=0;
while(num>0){
d=num%10;
num=num/10;
sum+=d*d;
}
return sum;
}
bool isHappy(int n) {
unordered_set<int>set1;
while(n!=1&&!set1.count(n)){
set1.insert(n);
n=getNext(n);
}
return n==1;
}
};
力扣 具体分析查看力扣
这题居然能用快慢指针,神奇吧,哈哈哈
class Solution {
public:
int getNext(int num){
int d,sum=0;
while(num>0){
d=num%10;
num=num/10;
sum+=d*d;
}
return sum;
}
bool isHappy(int n) {
int slow=n;
int fast=getNext(n);
while(fast!=1&&fast!=slow){
slow=getNext(slow);
fast=getNext(getNext(fast));
}
return fast==1;
}
};