网页设计免费网站推荐,wordpress后台修改文件,网站做外链好不好,网站建设团队与分工编写一个算法来判断一个数 n 是不是快乐数。 
「快乐数」 定义为#xff1a; 
对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1#xff0c…编写一个算法来判断一个数 n 是不是快乐数。 
「快乐数」 定义为 
对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1那么这个数就是快乐数。 
如果 n 是 快乐数 就返回 true 不是则返回 false 。 示例 1 
输入n  19
输出true
解释
12  92  82
82  22  68
62  82  100
12  02  02  1示例 2 
输入n  2
输出false提示 
1  n  231 - 1 方法13ms public static boolean isHappy(int n) {int m  n;ArrayListInteger list  new ArrayList();while (!list.contains(m)){list.add(m);if (m  1){return true;}int sum  0;String str  m  ;int length  str.length();for (int i  0; i  length; i) {sum  Math.pow(Integer.parseInt(str.charAt(i)  ) , 2);}m  sum;}return false;} 
方法20ms public int squareSum(int n) {int sum  0;while(n  0){int digit  n % 10;sum  digit * digit;n / 10;}return sum;}public boolean isHappy(int n) {int slow  n, fast  squareSum(n);while (slow ! fast){slow  squareSum(slow);fast  squareSum(squareSum(fast));};return slow  1;} 
方法21ms public boolean isHappy(int n) {SetInteger set  new HashSet();while(n!1    !set.contains(n)){set.add(n);ncal(n);}return n1;}public int cal(int nn){int sum0;while(nn!0){sum(nn%10)*(nn%10);nn/10;}return sum;}