题目链接:https://leetcode-cn.com/problems/happy-number/
题目如下:
class Solution {
public:
int calculate_sum(int num){
int result=0;
while(num!=0){
int number=num%10;
result+=number*number;
num=num/10;
}
return result;
}
bool isHappy(int n) {
//if(n==1) return true;
//注:题目中的无限循环,即求和的过程中,sum会重复出现
//当遇到要快速判断一个元素是否出现集合里的时候,考虑哈希法
unordered_set<int> uset;
int num=calculate_sum(n);
while(1){
if(uset.count(num)!=0) return false;
else uset.insert(num);
if(num==1) return true;
num=calculate_sum(num);
}
}
};