class Solution {
public:
bool isHappy(int n) {
unordered_set<int> set1;
int sum;
sum=n;
while(set1.find(sum)==set1.end()){
int n1=sum;
set1.insert(sum);
sum=0;
cout<<"n:"<<n1<<" ";
while(n1){
sum+=(n1%10)*(n1%10);
n1/=10;
}
cout<<"sum:"<<sum<<endl;
if(sum==1){
return true;
}
}
return false;
}
};
如何计算一个整数的各个位数之和需要注意一下,while(n)