一:题目
二:上码
class Solution {
public:
/**
思路:
1.破解这道题的关键是 我们得破解这个无限循环
2.根据这个题目给出的定义2 我们可以知道 无限循环的条件是我们 在计算的过程中出现了自己的数
*/
bool isHappy(int n) {
unordered_set<int>s;
s.insert(n);
while (1) {
string str = to_string(n);
int sum = 0;
for (int i = 0; i < str.size(); i++) {
int nums = str[i] - '0';
sum += nums * nums;
}
if (sum == 1) return true;
if(s.find(sum) != s.end()) {
return false;
} else {
s.insert(sum);
}
n = sum;
}
return false;
}
};