快乐数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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Set;
import java.util.HashSet;
import java.util.Scanner;


//快乐数202
public class HappyNumber202 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);

System.out.print("快乐数判断:");
if (new Solution().isHappy(input.nextInt())) {
System.out.println("\n您输入的【是】快乐数!");
}else {
System.out.println("\n很抱歉,您输入的【不是】快乐数。");
}
}
}
class Solution {
public boolean isHappy(int n) {
Set<Integer> set = new HashSet<>();
//前面是‘是’的退出条件,后面是‘不是’的退出条件
while(n != 1 && !set.contains(n)){
set.add(n);
//n变化
n = newNum(n);
}
return n == 1;
}
private int newNum(int origalNum){
int res = 0;
while(origalNum > 0){
int temp = origalNum % 10;
res += temp * temp;
origalNum /= 10;
}
return res;
}
}