网页设计免费网站推荐,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;}