image.png
/*
分析:以下方法 还可以优化。
1.首先我们要拿到 所给n 安装快乐数定义的算出来的 值 sum = 0
1)难度不大, 可以采用 n%10 取最后一位数 并 并重新复值 n = n/10 知道 n为一位数(或者 n为0 要看的循环怎么设置),并将每次模的数 平方 加到sum中 ,在将sum 赋予 n 判断n是否 为 1,并且 sum = 0,来接受新的一轮运算。
2.在于不快乐数 的出现。 不快乐数出现 就会 死循环。4—>16->37->58->89->145->42->20->4
当不快乐数 出现时 就需要 结束 return false;
*/
class Solution {
public boolean isHappy(int n) {
int sum = 0;
int flag = 0;
while(sum != 1){
if(flag != 0){
n = sum;
sum = 0;
}
if(n == 4)
return false;
while(n/10 != 0){
sum += Math.pow(n%10,2);
n = n/10;
}
sum += Math.pow(n,2);
flag ++;
System.out.println(sum);
}
return true;
}
}
leetcode
网友评论