202. 快乐数

leetcode-202. 快乐数

定义一个函数计算数位平方和,把每次的和记录在一个哈希表中,每计算一次检验一次,如果出现重复的元素,说明无限循环了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public:
int getSum(int num)
{
int sum = 0;
while(num > 0)
{
sum += ((num % 10) * (num % 10));
num /= 10;
}
return sum;
}

bool isHappy(int n) {
unordered_set<int> nums;
while (nums.find(n) == nums.end())
{
nums.insert(n);
n = getSum(n);
if(n == 1)
return true;
}
return false;
}
};