Leetcode---快樂數--技巧
阿新 • • 發佈:2018-12-31
快樂數
題目連結:快樂數
思路:
這道題乍一看不知道怎麼解,瞭解什麼是快樂數後非常簡單
突破點就兩個:1.如何拆解任意長度的整數 2.如何判斷非快樂數已經進入迴圈狀態
第一個直接迴圈拆就行了,第二個在百度了快樂數後瞭解,所有非快樂數最終都會進入4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的迴圈中。
程式碼:
public static boolean isHappy(int n) {
List<Integer> list = new ArrayList<Integer>();
while (n!=4) {
while(n!=0) {
list.add(n%10);
n/=10;
}
int temp = 0;
for(int i:list) {
temp+=i*i;
}
if(temp==1) {
return true;
}else {
list.clear();
n = temp;
}
}
return false ;
}