一 題目:
二 思路:
- 如果是快樂數(shù)肯定能變1,如果是變到之前的數(shù)挎峦,就可以終止了
- 如果這個(gè)數(shù)變成了之前出現(xiàn)過的數(shù)懦鼠,那么再往下計(jì)算也只是重復(fù)粱快,肯定不是快樂數(shù)了
三 代碼:
public static boolean isHappy(int n) {
//如果是快樂數(shù)肯定能變1,如果是變到之前的數(shù)沿腰,就可以終止了
Set<Integer> dup=new HashSet<>();
while (true){
if (n==1){
return true;
}
char[] charArray = String.valueOf(n).toCharArray();
n=0;
for (char c : charArray) {
n=n+(c-'0')*(c-'0');
}
if (dup.contains(n)){
return false;
}else {
dup.add(n);
}
}
}