LeetCode判断一个数是不是快乐数

快乐数的定义: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,或是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。

例如,19 就是一个快乐数。因为:

1² + 9² = 82

8² + 2² = 68

6² + 8² = 100

1² + 0² + 0² = 1

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 boolean isHappyNum(int num){
HashSet<Interger> sets = new HashSet<>();
while(num != 1 && sets.contains(num)){
sets.add(num);
num = getSum(num);
}
return num == 1;
}


public int getSum(int num){
int totalNum = 0;
while(num > 0){
int digit = num % 10;
int n = num / 10;
totalNum = digit * digit ;
}
return totalNum;
}



}

__END__