MCPcopy Create free account
hub / github.com/crossoverJie/JCSprout / HappyNum

Class HappyNum

src/main/java/com/crossoverjie/algorithm/HappyNum.java:31–67  ·  view source on GitHub ↗

Function: 判断一个数字是否为快乐数字 19 就是快乐数字 11就不是快乐数字 19 1 1+9 9=82 8 8+2 2=68 6 6+8 8=100 1 1+0 0+0 0=1 11 1 1+1 1=2 2 2=4 4 4=16 1 1+6 6=37 3 3+7 7=58 5 5+8 8=89 8 8+9 9=145 1 1+4 4+5 5=42 4 4+2 2=20 2 2+0 0=2 这里结果 1 1+1 1=2 和 2 2+0 0=2 重复,所以不是快乐数字 @author crossoverJie Date: 04/01/2018 14:12 @sin

Source from the content-addressed store, hash-verified

29 * @since JDK 1.8
30 */
31public class HappyNum {
32
33 /**
34 * 判断一个数字是否为快乐数字
35 * @param number
36 * @return
37 */
38 public boolean isHappy(int number) {
39 Set<Integer> set = new HashSet<>(30);
40 while (number != 1) {
41 int sum = 0;
42 while (number > 0) {
43 //计算当前值的每位数的平方 相加的和 在放入set中,如果存在相同的就认为不是 happy数字
44 sum += (number % 10) * (number % 10);
45 number = number / 10;
46 }
47 if (set.contains(sum)) {
48 return false;
49 } else {
50 set.add(sum);
51 }
52 number = sum;
53 }
54 return true;
55 }
56
57
58 public static void main(String[] args) {
59 int num = 345;
60 int i = num % 10;
61 int i1 = num / 10;
62 int i2 = i1 / 10;
63 System.out.println(i);
64 System.out.println(i1);
65 System.out.println(i2);
66 }
67}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected