快乐数
为啥这道题要用哈希呀,一步步化解,找到了关键:如果和出现重复值,就返回false
//部分为第二次debug才注意到的点。
特别注意:for(int num:res)
需要在()中指出num为int类型,否则编译不过
class Solution {
public:
bool isHappy(int n) {
unordered_set<int>res;
res.insert(n);
int yu;
int m = 0;
//int num;
int tag =0;
while(n!=1 && tag==0){//
m = 0;
while(n != 0){
yu = n%10;//%
n = n/10;
m+=yu*yu;
}
for(int num : res){
if(res.find(m) != res.end()){//循环
tag = 1;
break;
}
}
res.insert(m);//
n = m;//
}
if(tag == 1){
return false;
}else{
return true;
}
}
};