当跳出while循环后,可能是因为n为1了 或 出现重复了,则在最后返回的时候,要return n == 1; 才能符合要求
在while 循环内部 ,首先要将 n 添加到set 中,然后再重新生成 n。
classSolution{publicbooleanisHappy(int n){Set<Integer>record=newHashSet<>();while(n !=1&&!record.contains(n)){record.add(n);
n =getNextNumber(n);}return n ==1;}publicintgetNextNumber(int n){int sum =0;while(n >0){
sum +=Math.pow(n %10,2);
n /=10;}return sum;}}
思路1.首先new一个HashSet当record中不包含当前元素的时候,将这个元素加入,然后重新计算n的值最后返回n是否为1即可 class Solution { public boolean isHappy(int n) { Set<Integer> record = new HashSet<>(); while(n != 1 && !record.contains(n)){ record