
package com.haxitable.java;
import java.util.HashSet;
import java.util.Set;
public class three {
public boolean isHappy(int n) {
Set<Object> record = new HashSet<>();
while(n != 1 && !record.contains(n)) {
record.add(n);
n = getNextNumber(n);
}
//一旦退出循环,要么n==1 返回true,要么record.contains(n),便会无限循环,则返回false
return n == 1;
}
private int getNextNumber(int n) {
int res = 0;
while(n > 0) {
int temp = n % 10;//取余数
res += temp*temp;
n = n / 10;//求商,继续循环取余数
}
return res;
}
}
本文介绍了一个用于判断快乐数字的算法实现。快乐数字是指一个整数通过特定规则转换若干次后可以变为1的数字。该算法使用HashSet记录已计算过的数字,并通过循环检查是否能最终达到1来判断输入数字是否为快乐数字。
——【LeetCode】&spm=1001.2101.3001.5002&articleId=122748581&d=1&t=3&u=a1338a8d411c46dfb8b882c52b3667bc)
442

被折叠的 条评论
为什么被折叠?



