202.快乐数

编写一个算法来判断一个数 n 是不是快乐数。

 

  「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,

也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。

示例:
输入:19
输出:true


解释:
  12 + 92 = 82
  82 + 22 = 68
  62 + 82 = 100
  12 + 02 + 02 = 1

 

解题代码:

 1 public class Solution {
 2     public int squareSum(int n) {
 3         int sum = 0;
 4         while(n > 0){
 5             int digit = n % 10;
 6             sum += digit * digit;
 7             n /= 10;
 8         }
 9         return sum;
10     }
11 
12     public boolean isHappy(int n) {
13         int slow = n, fast = squareSum(n);
14         while (slow != fast){//如果快指针等于了慢指针时,跳出循环
15             slow = squareSum(slow);
16             fast = squareSum(squareSum(fast));
17         };
18         return slow == 1;
19     }
20  }

 

相关文章:

  • 2022-12-23
  • 2022-02-06
  • 2022-12-23
  • 2021-07-14
  • 2022-01-31
  • 2021-05-15
  • 2021-10-29
  • 2021-09-25
猜你喜欢
  • 2021-08-25
相关资源
相似解决方案